Data_Structure/資料結構光碟檔/CH14/binarySearch.c.txt

47 lines
1.3 KiB
Plaintext
Raw Normal View History

2025-01-20 21:25:33 +08:00
/* file name: binarySearch.c */
/* <20>G<EFBFBD><47><EFBFBD>j<EFBFBD>M */
#include <stdio.h>
#include <stdlib.h>
int main()
{
int data[10] = {12, 23, 29, 38, 44, 57, 64, 75, 82, 98};
int i, left = 0, right = 9, mid, cnt = 0, input, ok = 0;
printf("\n<< Binary search >>\n");
printf("\n<>w<EFBFBD>ƧǦn<C7A6><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ");
for(i = 0; i < 10; i++)
printf("%d ", data[i]);
printf("\n");
printf("\n<>п<EFBFBD><D0BF>J<EFBFBD><4A><EFBFBD><EFBFBD><EFBFBD>M<EFBFBD><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ");
scanf("%d", &input);
printf("\nSearching....\n");
mid = (left + right)/2; /* <20><><EFBFBD>Ȧb<C8A6><62>M<EFBFBD><4D> */
while (left <= right && ok == 0) {
printf("\n<><6E>%2d <20><><EFBFBD><EFBFBD><E4AABA><EFBFBD>ƬO: %d!", ++cnt, data[mid]);
/* <20><><EFBFBD>j<EFBFBD>M<EFBFBD><4D><EFBFBD><EFBFBD><EFBFBD>Ƥp<C6A4><70><EFBFBD><EFBFBD><EFBFBD>ȡA<C8A1>h<EFBFBD><68><EFBFBD>Ʀb<C6A6><62><EFBFBD>Ȫ<EFBFBD><C8AA>e<EFBFBD><65> */
if(data[mid] > input) {
right = mid - 1;
printf("\n ---> <20>n<EFBFBD><EFBFBD><E4AABA><EFBFBD>Ƥp<C6A4><70> %d\n", data[mid]);
}
/* <20>_<EFBFBD>h<EFBFBD><68><EFBFBD>Ʀb<C6A6><62><EFBFBD>Ȫ<EFBFBD><C8AA>᭱ */
else {
if(data[mid] < input) {
left = mid + 1;
printf("\n ---> <20>n<EFBFBD><EFBFBD><E4AABA><EFBFBD>Ƥj<C6A4><6A> %d\n", data[mid]);
}
else {
printf("\n\n<><6E><EFBFBD><EFBFBD><EFBFBD>F, %d <20>O<EFBFBD>b<EFBFBD><62><EFBFBD><EFBFBD> %d <20><><EFBFBD><EFBFBD><EFBFBD>m!\n", input, mid);
ok = 1;
}
}
mid = (left + right)/2;
}
if(ok == 0)
printf("\n\n<><6E><EFBFBD>p, %d <20><EFBFBD><E4A4A3>!", input);
printf("\n");
return 0;
}