Python의 이진 검색 템플릿
4095 단어 pythonalgorithms
이진 검색이란 무엇입니까?
이진 검색은 매번 검색 간격을 반으로 나누는 검색 알고리즘입니다. 이는 또한 이진 검색의 시간 복잡도가 O(log n)임을 의미합니다.
템플릿
이진 검색은 다음을 수행할 수 있습니다.
정렬된 배열에서 단일 요소 찾기
def binary_search(arr, target):
left, right = 1, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] < target:
left = mid + 1
elif arr[mid] > target:
right = mid - 1
else:
return mid
return -1
조건을 만족하는 첫 번째 인덱스 찾기
조건을 만족하는 첫 번째 인덱스를 찾는 것은 참-거짓 배열의 첫 번째 참 값을 찾는 것과 같습니다.
예:
[False, ... False, True, ... True]
참고 사항:
left == right
left
는 condition() == True
를 만족하는 첫 번째 인덱스입니다.left - 1
는 condition() == False
를 만족하는 마지막 인덱스입니다.def condition():
pass
def binary_search(arr):
left, right = 1, len(arr)-1
while left < right:
mid = (left + right) // 2
if condition():
right = mid
else:
left = mid + 1
return left
Reference
이 문제에 관하여(Python의 이진 검색 템플릿), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/alexhanbich/binary-search-template-in-python-44jo텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)