python 중 2분 검색법의 실현 방법

2092 단어 python이분 찾기
질서정연한 데이터에서 원하는 데이터를 찾으려면 2분 검색법이 좋은 방법이다. 검색 시간을 크게 단축시킬 수 있고 흔히 볼 수 있는 검색 방법이다.2분 찾기는 쓰기는 쉬우나 맞히기는 어렵다. 다음은 2분 찾기를 간단하게 소개하고 데모기가 코드를 사용한다.
1, 2분 찾기
질서정연하고 중복되지 않은 목록에서 이 목록의 요소를 찾습니다.
2. 특징
(1) 질서정연한 목록에 맞추어야 한다
(2) 이 목록은 중복되지 않아야 합니다.
(3) 아래 첨자 색인에 따라 찾기
3. 사용 방법
비귀속 실현:

def binary_search(alist, item):
  """   """
  n = len(alist)
  start = 0
  end = n - 1
  while start <= end:
    mid = (start + end) // 2
    if alist[mid] == item:
      return True
    elif item < alist[mid]:
      end = mid - 1
    else:
      start = mid + 1
  return False

if __name__ == '__main__':
  li = [17, 20, 26, 31, 44, 54, 55, 77, 93]
  # print(binary_search(li, 55))
  # print(binary_search(li, 100))
반복 구현:

def binary_search_2(alist, item):
  """   """
  n = len(alist)
  if 0 == n:
    return False
  mid = n // 2
  if alist[mid] == item:
    return True
  elif item < alist[mid]:
    return binary_search_2(alist[:mid], item)
  else:
    return binary_search_2(alist[mid + 1:], item)
if __name__ == '__main__':
  li = [17, 20, 26, 31, 44, 54, 55, 77, 93]
  # print(binary_search(li, 55))
  # print(binary_search(li, 100))
기본 지식 포인트 확장:
소개
2분 검색은 절반 검색(Binary Search)이라고도 하는데 이것은 효율이 비교적 높은 검색 방법이다.그러나 절반 찾기 요구 선형 테이블은 반드시 순서 저장 구조를 사용해야 하고 테이블의 요소는 키워드에 따라 질서정연하게 배열되어야 한다.
전제
찾을 순서가 정해져야 합니다.
시간 복잡도
O(log2n)
원리
1) 해당 기간의 중간 위치 확인 K
2) 찾은 값 t와array[k]를 비교하고 같으면 이 위치로 되돌아오는 데 성공합니다.그렇지 않으면 새로운 검색 영역을 확인하고 2분 검색을 계속합니다.
3) 영역 확인 절차:
만약array[k]>t, 수조가 질서정연하기 때문에array[k,k+1,...,high]>t;그러므로 새로운 구간은array[low,..., K-1]이다.
반대로,array[k]이는python에서 2분 찾기법의 실현 방법에 관한 글을 소개합니다. 더 많은 관련python에서 2분 찾기법이 어떻게 내용을 실현하는지 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보시기 바랍니다. 앞으로 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기