1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| #include <stdio.h> int main() { int arr[]={1,2,3,4,5,6,7,8,9,10}; int k = 11; int sz = sizeof(arr)/sizeof(arr[0]); int left = 0; int right = sz - 1; while (left <= right) { int mid = (left + right) / 2; if (arr[mid] > k) { right = mid - 1; } else if(arr [mid] < k) { left = mid + 1; } else { printf("找到了,下标是:%d\n",mid); break; } } if (left > right) { printf("没找到"); } return 0; }
|