Binary Search 는 오름차순으로 정렬된 리스트에서 특정값의 위치를 찾는 알고리즘
처음 중간의 임의 값을 선택하여, 그 값의 크고 작음을 비교
시간복잡도는 O (log N) 이다.
def binary_search(arr, value):
low = 0
high = len(arr)-1
while (low <= high):
mid = (low+high)//2
if arr[mid] > value:
high = mid - 1
elif arr[mid] < value:
low = mid + 1
else:
return mid
return -1
arr = [1, 5, 7, 10, 25, 32, 79, 80, 125]
print(binary_search(arr, 7))
print(binary_search(arr, 8))
'아카이빙' 카테고리의 다른 글
Python으로 알고리즘 공부 06. 소수 (Prime number) (0) | 2017.07.05 |
---|---|
Python으로 알고리즘 공부 05. 퀵 셀렉션 (Quick Selection) (0) | 2017.07.05 |
Python으로 알고리즘 공부 03. 계수 정렬 (Counting Sort) (0) | 2017.07.03 |
Python으로 알고리즘 공부 02. 퀵 정렬 (Quick Sort) (0) | 2017.07.03 |
Python으로 알고리즘 공부 01. 병합정렬 (Merge Sort) (0) | 2017.07.02 |