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 28 29 30 31 32 33 34 35 36
| #include <stdio.h>
int binary_search(int arr[],int k,int sz) { int left = 0;
int right = sz - 1; while (left<=right) { int mid = (left + right) / 2; if (arr[mid] < k) { left = mid + 1; }else if (arr[mid] > k) { right = mid - 1; }else { return mid;; } } return -1; }
int main(){ int arr[] = {1,2,3,4,5,6,7,8,9,10}; int k = 20; int sz = sizeof(arr)/sizeof(arr[0]); int ret = binary_search(arr,k,sz); if (ret == -1) { printf("找不到\n"); }else { printf("找到了,下标是:%d\n",ret); } }
|