C++编程:给定10个有序整数,存入数组a中,编写折半查找函数,完成C++编程:给定10个有序整数,存入数组a中,编写折半查找函数,完成查找任意关键字key查找
时间: 2023-08-15 10:04:49 浏览: 91
折半查找的基本思想-C++何洁月教学PPT
以下是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) {
left = mid + 1;
}
else {
right = mid - 1;
}
}
return -1;
}
int main() {
int arr[10] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
int key = 7;
int index = binarySearch(arr, 0, 9, key);
if (index != -1) {
cout << "The index of " << key << " is " << index << endl;
}
else {
cout << "Key not found." << endl;
}
return 0;
}
```
首先定义了一个名为binarySearch的函数,它接受四个参数:数组arr,查找区间的左右边界left和right,以及要查找的关键字key。在函数体内,使用while循环进行折半查找,如果找到了关键字key,就返回它的下标;如果没找到,则返回-1。
在主函数中,定义了一个包含10个有序整数的数组arr,以及要查找的关键字key。调用binarySearch函数进行查找,如果查找成功,输出关键字key的下标;否则输出“Key not found.”。
阅读全文