Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 언어의 이진 검색 설명

<시간/>

이진 검색 방법은 정렬된 목록에만 적용할 수 있습니다. 주어진 목록은 동일한 두 부분으로 나뉩니다. 목록에서 키는 중간 요소와 비교됩니다.

다음과 같은 세 가지 상황이 이진 검색에서 발생할 수 있습니다. -

  • 중간 요소가 키와 일치하면 여기에서 검색이 성공적으로 종료됩니다.

  • 중간 요소가 키보다 크면 왼쪽 파티션에서 검색이 진행됩니다.

  • 중간 요소가 키보다 낮으면 오른쪽 파티션에서 검색이 진행됩니다.

입력(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