이진 검색 알고리즘
이진 검색에서 각 시도에서 나머지 숫자의 절반을 제거하기 위해 중간 숫자를 추측합니다.
def binnary_search(list, item):
low = 0
high = len(list) - 1 #1
while low <= high:
mid = round(low + high) // 2 #2
guess = list[mid]
if guess == item: #3
return mid
if guess > item: #4
high = mid - 1
else: #5
low = mid + 1
return None
my_list = [1, 2, 3, 5, 7, 9, 11, 23, 123, 345]
print(binnary_search(my_list, 345)) #9
print(binnary_search(my_list, 11)) #6
print(binnary_search(my_list, 15)) #None
이 프로그램을 다음과 같이 나누어 보겠습니다.
목록의 번호 매기기는 0부터 시작한다는 것을 기억하십시오.
이진 검색은 전체 항목 목록을 하나씩 검색하는 좋은 대안입니다. 10개 요소 목록이 있는 이진 검색의 속도는 최대 4개의 추측을 제공하는 O(log 10)입니다.
Big O 표기법에 대한 자세한 내용은 이전 게시물에서 읽을 수 있습니다.
Reference
이 문제에 관하여(이진 검색 알고리즘), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/quentindamianino/binary-search-algorithm-104c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)