Algorithm
이진 탐색 (이분 탐색) (Binary Search)
bornsoon
2024. 10. 8. 16:33
이진탐색은 반드시 정렬된 배열에서만 사용 가능한 점에 주의하자.
이진탐색은 순차 검색이며 시간복잡도는 O(log N)이다.
다음은 파이썬으로 구현한 코드이다.
# arr : 정렬된 리스트
# target: 찾고자 하는 값
# start : 배열의 처음
# end : 배열의 마지막
# binary_serach 함수의 반환값 : target의 인덱스
def binary_search(arr, target, start, end):
if start > end:
return None
mid = (start + end ) // 2
if arr[mid] == target:
return mid
elif arr[mid] > target:
end = mid - 1
else:
start = mid + 1
return binary_search(arr, target, start, end)
arr.sort() # 리스트가 정렬되지 않았을 경우
binary_search(arr, target, 0, len(arr))
728x90