이진 검색은 범위를 계속 절반씩 줄여 가면서 검색하기 때문에 자료의 양이 커도 비교 회수가 많이 않은 것이 장점이다. 베열의 크기가 n일 때 최악의 경우라도
log2n 번 비교하면 원하는 값을 찾을 수 있다. 극단적인 경우 n이 40억이라 하더라도 기껏 32번만 비교하면 되므로 순차 검색과는 비교할 바가 아니다.
이진 검색이 이렇게 속도가 빠른 이유는 자료가 크기순으로 정렬되어 있기 때문이다. 그래서 이진 검색에 사용할 자료는 삽입할 때도 반드시 이 조건을 지키도록 해야 한다.
<binarysearch.c>
처음부터 순서대로 검색하는 것이 아니라 중간 부분을 쿡쿡 찔러보는 식이므로 키값이 중복될 경우 어떤 키가 검색될지 알 수 없는 맹점이 있다. 위 예에서 키를 21로 바꿀 경우 두 개의 21중 어떤 값이 검색될 것인가를 예측할 수 없으며 테이블 크기가 가변적일 때는 상황에 따라 검색되는 값이 달라진다. 키의 중복을 해결하든지 아니면 이진 검색으로 일단 찾은 후 아래 위의 레코드를 순차 검색하여 중복된 값 중 하나를 선택해야 한다.
이진 검색은 복잡성에 비해 효율이 굉장히 좋기 때문에 검색 알고리즘 중에는 가장 실용적이고 자주 사용된다.