代码如下
#include <stdio.h>//二分查找
int func(int arr[], int l, int r, int num) {
int mid = (r + l) / 2;
if (l > r) {
return 0;
} else if (num > arr[mid] ) {
return func(arr, mid + 1, r, num);
} else if (num < arr[mid]) {
return func(arr, l, mid - 1, num);
} else {
return mid;
}
}
int main() {
int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int k = 0;
scanf("%d", &k);//输入查找数
int l = 0;
int r = sizeof(arr) / sizeof(arr[0]) - 1;
while (l <= r) {
int mid = (l + r) / 2;
if (k > arr[mid]) {
l = mid + 1;
} else if (k < arr[mid]) {
r = mid - 1;
} else {
printf("找到了\n");
break;
}
}
if (l > r) {
printf("没找到\n");
}
return 0;
}
个人理解,仅供参考