728x90
반응형
2023.02.24 최초 작성
#include <stdio.h>
#define SIZE 20
int binary_search(int list[], int size, int search) {
int low, middle, high;
int searchIndex = -1;
low = 0;
high = size - 1;
while (low <= high) {
printf("탐색범위 : %d ~ %d\n", low, high);
middle = (low + high) / 2;
if (search > list[middle]) {
low = middle + 1;
}
else if(search < list[middle]){
high = middle - 1;
}
else {
searchIndex = middle;
break;
}
}
if (searchIndex > -1) {
printf("찾았습니다. %d의 위치 : %d", search, searchIndex);
}
else {
printf("%d를 찾지 못했습니다.", search);
}
}
void main() {
int list[SIZE] = { 1,3,5,7,11,12,17,19,22,29,31,33,41,43,44,57,61,70,71,80 };
int search;
printf("탐색할 수:");
scanf("%d", &search);
binary_search(list, SIZE, search);
}
[실행 결과]
탐색할 수:12
탐색범위 : 0 ~ 19
탐색범위 : 0 ~ 8
탐색범위 : 5 ~ 8
탐색범위 : 5 ~ 5
찾았습니다. 12의 위치 : 5
728x90
반응형
728x90
반응형
'프로그래밍 > C' 카테고리의 다른 글
다익스트라 C언어 코드 (0) | 2023.02.28 |
---|---|
깊이우선탐색(DFS)와 너비우선탐색(BFS) C언어 코드 (0) | 2023.02.27 |
순차탐색 C언어 코드 (0) | 2023.02.24 |
큐 C언어 코드 (0) | 2023.02.22 |
원형 큐 C언어 코드 (0) | 2023.02.22 |