
1부터 100까지의 수 중에서 하나를 머릿속을 생각을 하고 상대방이 고를때마다 값이 그 수보다 더큰지 작은지 알려준다면, 대부분의 사람들이 직관적으로 중앙 값인 50을 고르고 그다음에 25또는 75를 골라 절반씩 줄여 나갈 것이다. 이러한 방식으로 값을 찾아내는 방법이 이진검색이다.
| index | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| value | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| index | 0 | 1 | 2 | 3 | 4 | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| value | ? | ? | ? | ? | ? | 15 | ? | ? | ? | ? | ? |
| index | 3 | 4 | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| value | ? | ? | 7 | ? | ? | 15 | ? | ? | ? | ? | ? |
| index | 3 | 4 | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| value | ? | ? | 7 | 10 | ? | 15 | ? | ? | ? | ? | ? |
정렬된 리스트의 크기가 작다면 이진검색 알고리즘과 선형검색 알고리즘의 유의미한 차이는 없지만 배열의 길이가 길어지면 많은 차이가 난다.
100개의 값을 갖는 배열에서 각 검색에 필요한 최대 단계수는 다음과 같다.
선형검색 : 100단계
이진검색 : 7단계
선형검색은 찾고자 하는 값이 마지막 셀에 있거나 마지막 셀의 값보다 크면 모든 원소를 조사해야 한다.
이진검색은 한번 검색할 때마다 검색해야 할 셀 중 절반을 제거할 수 있다.
정렬된 배열의 크기가 두배 늘어날 때마다 이진검색의 단계수는 1씩 증가한다.
원소가 10,000개라면 이진검색은 최대 13단계면 충분하며, 1,000,000개라도 최대 20단계이다.
