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 컴파일러에서 실행하세요.
연습 문제
입력값과 경계 조건을 바꾸고 더 큰 데이터에서도 동작을 확인하세요.
- 빈 입력, 한 요소, 중복값을 시험하세요.
- 각 단계의 상태를 출력하세요.
- 다른 풀이와 성능을 비교하세요.