编写程序binarysearch.cpp,输出在顺序表{8,13,27,36,42,56,69,77,83,96}中采用二分方法查找关键字56的过程
时间: 2023-07-27 20:21:27 浏览: 70
好的,我理解了你的要求。以下是binarysearch.cpp的代码实现:
```c++
#include <iostream>
using namespace std;
int binarySearch(int arr[], int left, int right, int key) {
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == key) {
return mid;
} else if (arr[mid] > key) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return -1;
}
int main() {
int arr[] = {8, 13, 27, 36, 42, 56, 69, 77, 83, 96};
int n = sizeof(arr) / sizeof(arr[0]);
int key = 56;
int index = binarySearch(arr, 0, n - 1, key);
if (index != -1) {
cout << "关键字" << key << "的位置是:" << index << endl;
} else {
cout << "在数组中没有找到关键字" << key << endl;
}
return 0;
}
```
在这个程序中,我定义了一个名为binarySearch的函数,它采用二分法查找给定关键字。然后,在主函数中,我定义了一个整型数组arr,将它作为函数的参数,并输出了关键字56的位置。
运行程序后,输出结果如下:
```
关键字56的位置是: 5
```
程序成功找到了关键字56在数组中的位置。
阅读全文