https://www.acmicpc.net/blog/view/109
1배열이 정렬돼 있어야 함
예: [1, 3, 5, 7, 9, 11]
중간값(mid)과 target을 비교
target < arr[mid] → 왼쪽 구간 탐색
target > arr[mid] → 오른쪽 구간 탐색
일치하면 인덱스를 리턴,
없으면 탐색 구간이 비워지고 종료.
def binary_search(target, arr):
arr.sort()
left = 0
right = len(arr) - 1
while left <= right:
mid = (left + right) // 2
if data[mid] == target:
return mid # 함수를 끝내버린다.
elif data[mid] > target:
right = mid -1
else:
left = mid + 1
return -1