이진 검색 방법은 정렬된 목록에만 적용할 수 있습니다. 주어진 목록은 동일한 두 부분으로 나뉩니다. 목록에서 키는 중간 요소와 비교됩니다.
다음과 같은 세 가지 상황이 이진 검색에서 발생할 수 있습니다. -
-
중간 요소가 키와 일치하면 여기에서 검색이 성공적으로 종료됩니다.
-
중간 요소가 키보다 크면 왼쪽 파티션에서 검색이 진행됩니다.
-
중간 요소가 키보다 낮으면 오른쪽 파티션에서 검색이 진행됩니다.
입력(i/p)
요소의 정렬된 목록, 키.
출력(o/p)
- 성공 - 키가 발견되면
- 실패 - 그렇지 않으면.
예시
다음은 바이너리 검색 방법을 위한 C 프로그램입니다 -
#include<stdio.h> int main(){ int a[50], n, i, key, flag = 0, low, mid, high; printf("enter the no: of elements:"); scanf ("%d",&n); printf("enter the elements:"); for(i=0; i<n; i++) scanf( "%d", &a[i]); printf("enter a key element:"); scanf ("%d", &key); low = 0; high = n-1; while (low<= high ){ mid = (low + high) /2; if (a[mid] == key){ flag = 1; break; } else { if (a[mid] > key) high = mid-1; else low = mid+1; } } if (flag == 1) printf ("search is successful"); else printf("search is unsuccessful"); return 0; }
출력
위의 프로그램이 실행되면 다음과 같은 결과가 생성됩니다 -
enter the no: of elements:5 enter the elements:23 45 57 89 90 enter a key element:45 search is successful