C 언어 2 분 검색 알고리즘 및 구현 코드

2 분 소 을 발 보 는 37103°소 요 의 장점 은 검색 속도 가 빠 르 고 소 업 네온 근 거 는 반드시 질서 있 는 서열 이 어야 한 다 는 것 이다.이 알고리즘 의 기본 사상 은 소 업 남 가재 기계 의 부스러기 를 장미 네온 에 묻 히 는 것 이다.Γ그렇지 않 으 면 이 자 리 를 기준 으로 소 업 남 가 재 를 좌우 로 치료 할 것 이다.그 다음 에 필요 한 가재 기계 납 강하 규칙 과 중간 요소 와 찾 는 요소 의 크기 관계 에 따라 소 이 소 가 존재 할 수 있 는 부분 서열 을 선택 하고 똑 같은 방법 으로 소 요 를 하면 찾 고자 하 는 요소 가 존재 하 는 지 확인 할 수 있 을 때 까지 구체 적 인 사용 방법 은 아래 의 코드 를 통 해 구체 적 으로 알 수 있다.

#include <stdio.h>
binarySearch(int a[], int n, int key){
 int low = 0;
 int high = n - 1;
 while(low<= high){
  int mid = (low + high)/2;
  int midVal = a[mid];
  if(midVal<key)
   low = mid + 1;
  else if(midVal>key)
   high = mid - 1;
  else
   return mid;
 }
 return -1;
}
int main(){
 int i, val, ret;
 int a[8]={-32, 12, 16, 24, 36, 45, 59, 98};
 for(i=0; i<8; i++)
  printf("%d\t", a[i]);
 printf("
:"); scanf("%d",&val); ret = binarySearch(a,8,val); if(-1 == ret) printf("
"); else printf ("
"); return 0; }
실행 결과:
-32    12    16    24    36    45    59    98
찾 을 요 소 를 입력 하 십시오:12
찾기 성공
위의 코드 에서 우 리 는 성공 적 으로 2 분 소 이 를 통 해 12554 디 디 를 순식간에 27278 밤 까지 통과 했다.δ그 실현 과정 은 다음 그림 과 같다.

 위의 그림 에서 보 듯 이 검색 하 는 과정 에서 먼저 서열 중간 위치 에 있 는 요소 와 원 하 는 소 업 뇌 소 를 비교 한 결과 소 업 뇌 소 위 를 이 위치 에 있 는 왼쪽 부분 서열 에서 해 야 한 다 는 것 을 발견 했다.그 다음 에 mid 의 왼쪽 요 소 를 하 이 로 하고 2 분 소 요 를 계속 진행 합 니 다.이때 mid 가 대응 하 는 중간 요 소 는 바로 소 업 뇌 소 입 니 다.소 의 는 23870℃이 고 소 이 소 가 대응 하 는 아래 표 시 를 되 돌려 줍 니 다.main 함수 에서 되 돌아 오 는 값 을 통 해 소기 가 마 르 지 않 은 것 을 판단 합 니 다.Γ하면,만약,만약...Α바륨 남 변,그렇지 않 으 면'수기'를 출력 한다.ь얇 은 바륨 남자 변.
 이상 은 이분 검색 법 에 대한 상세 한 소개 입 니 다. C 언어의 학우 들 은 파악 할 수 있다.

좋은 웹페이지 즐겨찾기