최대 1 분 소요

보간 탐색 알고리즘

def binary_search_iter(A, key, low, high):
  while low <= high:
    middle = int(low + (high-low) * (key - A[low].key) / (A[high].key-A[low].key))
    # 이진 탐색 함수에서 middle 계산만 다음과 같이 수정
    if key == A[middle]:
      return middle
    elif key < A[middle]:
      high = middle -1
    else:
      low = middle + 1
  return -1

보간 탐색의 특징

  • 탐색 키가 존재할 위치를 예측하여 탐색하는 방법
  • 이진탐색과 같은 시간복잡도를 갖지만 많은 데이터가 비교적 균등하게 분포된 자료의 경우 훨씬 효율적으로 사용될 수 있음

댓글남기기