Binary Search (이진 탐색)
순차 탐색
array = [3, 1, 7, 5, 9]
for i in range(len(array)):
if array[i] == 7:
print(i)이진 탐색
구현 - 반복문 (권장)
def binary_search(array, target, start, end):
while start <= end:
middle = (start + end) // 2
if target > array[middle]:
start = middle + 1
elif target < array[middle]:
end = middle - 1
else:
return middle
return None
array = [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
target = int(input())
index = binary_search(array, target, 0, len(array) - 1)
print(index) if index != None else print("원소가 존재하지 않습니다.")구현 - 재귀함수
이진 탐색을 사용하는 경우
찾아야 할 자료가 여러 개인 경우
최적화 문제를 결정 문제로 바꾸는 파라매트릭 서치 문제
파라매트릭 서치 문제Last updated