Python 알고리즘

Python 이진 탐색

이진 탐색은 비교할 때마다 남은 검색 범위를 절반으로 줄입니다.

이진 탐색이란?

이진 탐색은 비교할 때마다 남은 검색 범위를 절반으로 줄입니다.

정렬된 리스트에서 값을 빠르게 찾습니다.

언제 사용하나요?

  • 알고리즘과 자료 구조를 이해합니다.
  • 각 단계와 경계 조건을 확인합니다.
  • 실행 시간과 메모리 사용량을 비교합니다.

Python 이진 탐색 시각화

O(log n)

재생 또는 한 단계를 눌러 비교와 데이터 이동 과정을 확인하세요.

예제 코드

코드 실행 →
main.py
def binary_search(values, target):
    low, high = 0, len(values) - 1
    while low <= high:
        middle = (low + high) // 2
        if values[middle] == target:
            return middle
        if values[middle] < target:
            low = middle + 1
        else:
            high = middle - 1
    return -1

print(binary_search([3, 8, 12, 17, 25, 31], 17))

예상 출력

3

작동 원리

중앙값으로 좌우 중 어느 쪽을 남길지 정합니다. 시간 O(log n)이며 입력은 정렬되어야 합니다.

값을 변경하고 Python 설치 없이 CodeUtility 온라인 Python 컴파일러에서 실행하세요.

연습 문제

입력값과 경계 조건을 바꾸고 더 큰 데이터에서도 동작을 확인하세요.

  1. 빈 입력, 한 요소, 중복값을 시험하세요.
  2. 각 단계의 상태를 출력하세요.
  3. 다른 풀이와 성능을 비교하세요.
Python IDE에서 실행 →