编写函数int BinSearch(int a[],int n,int x),功能为在一维整数数组a中(数据递增存储,从下标0开始,数组大小为n),以折半查找的思想查找整数x,找到返回下标,否则返回-1. 并在main函数中进行调用测试.
时间: 2024-02-23 09:59:46 浏览: 99
对半查找BinSearch()
好的,以下是函数的代码实现:
```
int BinSearch(int a[], int n, int x) {
int l = 0, r = n - 1;
while (l <= r) {
int mid = (l + r) / 2;
if (a[mid] == x) {
return mid;
} else if (a[mid] > x) {
r = mid - 1;
} else {
l = mid + 1;
}
}
return -1;
}
```
在 main 函数中测试:
```
#include <stdio.h>
int BinSearch(int a[], int n, int x);
int main() {
int a[] = {1, 3, 5, 7, 9, 11, 13, 15};
int n = sizeof(a) / sizeof(int);
int x = 7;
int index = BinSearch(a, n, x);
if (index == -1) {
printf("未找到 %d\n", x);
} else {
printf("找到 %d,下标为 %d\n", x, index);
}
return 0;
}
```
输出结果为:
```
找到 7,下标为 3
```
阅读全文