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 "); 29 else 30 printf("findDate's idx == %d ",idx); 31 32 33 return 0; 34 }