1 #include <stdio.h>
2 #include <stdlib.h>
3 int *binsearch(int *base, int len, int data);
4
5 int main()
6 {
7 int * p = NULL;
8 int a[4] = {1, 2, 45, 68};//排好序的数组
9 int data = 43;
10 p = binsearch(a, 4, data);
11 printf("%p\n", p);
12 system("pause");
13 return 0;
14 }
15
16 int *binsearch(int *base, int len, int data)
17 {
18 int *low = base, *high = base + len;
19 int *mid = NULL;
20
21 while(low < high)
22 {
23 mid = low + ((high - low) >> 1);
24 if(data < *mid)
25 {
26 high = mid;
27 }
28 else if(data > *mid)
29 {
30 low = mid + 1;//mid + 1 不是 mid
31 }
32 else
33 {
34 return mid;
35 }
36 }
37
38 return NULL;
39 }