이진 탐색은 정렬된 배열 내부의 데이터에서 탐색 범위를 절반씩 좁혀 나가며 원하는 값을 찾아가는 과정이다.
def binary_search(array, target, start, end):
if start > end:
return (start + end) // 2
mid = (start + end) // 2
if array[mid] == target:
return mid
elif array[mid] > target:
return binary_search(array, target, start, mid - 1)
elif array[mid] < target:
return binary_search(array, target, mid + 1, end)