C 练习
//用二分法,查找一个数是否在一个有序数组中. #include <stdio.h> int binary_search(int arr[], int k, int size) { int lift = 0; int right = size-1; while (lift<=right) { int mid = (lift + right) / 2; if (arr[mid] < k) lift = mid+1; else if (arr[mid] > k) right = mid-1; else return mid; } return -1; } int main() { int arr[] = {10, 20, 30, 40,50, 60,70,80,90,100}; int k =60; int size = sizeof(arr) / sizeof(arr[0]); //数组的长度放在函数外面获取 int ret = binary_search(arr, k, size); //因为函数传递数组仅仅是传递的数组的首地址 if (ret == -1) { printf("没有找到。"); } else printf("%d 找到了。", k); return 0; }