C 언어 2 분 검색 알고리즘 및 구현 코드
#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 언어의 학우 들 은 파악 할 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 구현 천둥 제거 게임 상세 정보먼저 작은 메뉴를 표시하고 게임을 할지 여부를 선택하십시오.사용자가 종료를 선택하면 프로그램 실행이 끝나고, 사용자가 게임을 선택하면 지뢰 제거 위치 좌표를 입력하라는 메시지가 표시됩니다.사용자가 입력한 좌표가 바둑...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.