이진탐색은 배열 내부의 데이터가 정렬되어 있어야만 사용할 수 있는 알고리즘이다.
확인할 때마다 확인하는 원소의 개수가 절반씩 줄어든다는 점에서 시간 복잡도가 O(logN)이다.
def binary_search(array, target, start, end):
while start <= end:
mid = (start + end) // 2
if array[mid] == target:
return mid
elif array[mid] > target:
end = mid - 1
else:
start = mid + 1
이진 탐색 알고리즘은 가급적 외우고, 탐색 범위가 2000만을 넘어가면 접근해보는 것을 권한다.
반응형
'알고리즘' 카테고리의 다른 글
최단 경로 다익스트라/플로이드 워셜 (0) | 2022.05.09 |
---|---|
다이나믹 프로그래밍 (0) | 2022.04.26 |
기준에 따라 데이터를 정렬 (0) | 2022.04.18 |
탐색 알고리즘 DFS/BFS (0) | 2022.04.15 |
아이디어를 코드로 바꾸는 구현 (0) | 2022.04.12 |