1 //折半查找 前提有序数组
2 #include <stdio.h>
3 #define N 10
4 int main(void)
5 {
6 int arr[N] = {1,2,3,4,5,6,7,8,9,10};//升序
7 int findDate = 10;
8 int idx = -1;
9 int left = 0,right=N-1;
10 int mid;
11
12 while(left<=right)
13 {
14 mid = (left+right)/2;
15 if(findDate == arr[mid])
16 {
17 idx = mid;
18 break;
19 }
20 else if(findDate > arr[mid])
21 {
22 left = mid+1;
23 }
24 else
25 right = mid-1;
26 }
27 if(idx == -1)
28 printf("find none\n");
29 else
30 printf("findDate's idx == %d\n",idx);
31
32
33 return 0;
34 }