보간 탐색 (Interpolation Search)
값의 분포가 균등하다고 가정하고 Target의 '위치'를 비례 계산으로 추정합니다. 균등 분포에서는 이진 탐색보다 빠르지만, 편향된 분포에서는 최악 O(n)까지 퇴화할 수 있습니다.
01보간 탐색 (Interpolation Search)
알고리즘 작동 원리 탐색보간 탐색을 시작합니다. 값이 고르게 퍼져 있다고 보고, 목표가 있을 만한 자리를 비례식으로 곧장 짚습니다.
45는 5부터 98까지의 범위에서 앞쪽에 놓입니다. 비례식이 짚은 자리는 인덱스 3 — 이진 탐색의 한가운데보다 목표에 가깝습니다.
짚은 자리의 값은 34로 45보다 작습니다. 목표는 오른쪽에 있으니 그 뒤부터 다시 셈합니다.
이번엔 남은 구간의 첫 값이 곧 목표라, 비례식이 그 자리를 정확히 가리킵니다.
짚은 자리가 바로 45 — 두 번 만에 목표를 찾았습니다.
탐색 완료 · 45는 인덱스 4에 있습니다. 고르게 퍼진 값에 강하지만, 한쪽에 쏠린 값에서는 O(n)까지 나빠집니다.
02 쉽게 이해하기
For Everyone값이 고르게 분포한다고 보고 목표가 있을 위치를 비례식으로 추정합니다. 가정이 맞으면 이분 탐색보다 빠릅니다.
값의 분포가 고르다고 보고 target의 위치를 비례로 추정해 건너뜁니다.
균등 분포에선 이진 탐색보다 빨라요.
- –균등 분포 정렬 데이터(전화번호부 등)
03 파이썬 구현 코드
보간 탐색 (Interpolation Search)의 핵심 로직을 담은 표준 구현 예시입니다. 가급적 간결하고 읽기 쉬운 코드로 작성되었습니다.
04 자주 묻는 질문
FAQ보간 탐색 (Interpolation Search)란 무엇인가요?+
값의 분포가 균등하다고 가정하고 Target의 '위치'를 비례 계산으로 추정합니다. 균등 분포에서는 이진 탐색보다 빠르지만, 편향된 분포에서는 최악 O(n)까지 퇴화할 수 있습니다.
보간 탐색 (Interpolation Search)의 시간복잡도는 어떻게 되나요?+
보간 탐색 (Interpolation Search)의 시간복잡도는 O(log log n) avg 입니다. 시각화의 단계별 진행을 따라가며 왜 이런 복잡도가 나오는지 직접 확인할 수 있습니다.
보간 탐색 (Interpolation Search)은(는) 어디에 사용하나요?+
균등 분포 정렬 데이터(전화번호부 등).
보간 탐색 (Interpolation Search)를 쉽게 비유하면?+
값이 고르게 분포한다고 보고 목표가 있을 위치를 비례식으로 추정합니다. 가정이 맞으면 이분 탐색보다 빠릅니다.
