1 #include <stdio.h>
2 #include <stdlib.h>
3 #define MAX 10
4
5 int binary_search(int *array, int n, int key);
6
7 int main()
8 {
9 int i;
10 int n;
11 int key;
12 int array[MAX] = { 3, 6, 8, 38, 79, 343, 444, 1000, 2343, 3333 };
13 for (i = 0; i < MAX; i++) {
14 printf("第 %d 个 %d ", i, array[i]);
15 printf("\n");
16 }
17 printf("enter the number you want to search: \n");
18 scanf("%d", &key);
19 binary_search(array, MAX, key);
20
21 return 0;
22 }
23
24 int binary_search(int *array, int n, int key)
25 {
26 n = MAX;
27 int low = 0;
28 int high = n - 1;
29 int mid;
30 while (low < high) {
31 mid = (low + high) / 2;
32 if (key < array[mid])
33 high = mid - 1;
34 if (key > array[mid])
35 low = mid + 1;
36 if (key == array[mid]) {
37 printf("It locates in %d \n", mid);
38 return 0;
39 }
40 }
41 printf("It doesn\'t exist!\n");
42
43 return 0;
44 }