몇 분 안에 이진 검색
이진 검색은 어떻게 작동합니까?
파이썬으로 구현
# iterative approach
def iterative_binary_search(list, target):
low = 0
high = len(list) - 1
while high > low:
mid = math.floor((low + high) / 2)
if list[mid] == target:
return mid
elif list[mid] < target:
low = mid + 1
else:
high = mid - 1
return -1
# recursive approach
def recursive_binary_search(list, target, low, high):
if low < high:
mid = math.floor((low + high) / 2)
if list[mid] == target:
return mid
elif list[mid] < target:
return recursive_binary_search(list, target, mid + 1, high)
else:
return recursive_binary_search(list, target, low, mid - 1)
return -1
이진 검색의 시간 복잡도
사례
시간 복잡도
최고
오(1)
평균
O(로그 n)
가장 나쁜
O(로그 n)
이진 검색의 공간 복잡성
Reference
이 문제에 관하여(몇 분 안에 이진 검색), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rachelsarchive/binary-search-in-minutes-1oo8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)