정렬된 배열에서 특정 값을 찾아내는 알고리즘이다.
위 설계를 옮긴 코드이다.
def BSearch(array, check):
low = 0
high = len(array) -1
while(low <= high):
mid = (low + high) // 2
if(array[mid] == check):
return mid
elif(array[mid] > check):
high = mid - 1
else:
low = mid + 1
return -1
시간복잡도는 O(logN)이다.
응용 문제
'알고리즘 > 개념' 카테고리의 다른 글
[정렬] 병합 정렬 [Merge Sort] (0) | 2021.12.01 |
---|---|
[최소 신장 트리] 프림[Prim] 알고리즘 (0) | 2021.10.08 |
[정렬] 위상 정렬(Topological Sort) (0) | 2021.10.02 |
[최단 경로 트리] 다익스트라 알고리즘[Dijkstra] (0) | 2021.05.18 |
[그래프 탐색] 깊이 우선 탐색[DFS], 너비 우선 탐색[BFS] (0) | 2021.04.12 |