C++ 实现基于有序顺序表的折半查找算法 代码
时间: 2023-12-10 19:42:01 浏览: 117
下面是一个基于有序顺序表的折半查找算法的 C++ 代码实现:
```cpp
#include <iostream>
using namespace std;
int binarySearch(int arr[], int n, int target) {
int left = 0, right = n - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] > target) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return -1;
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int n = sizeof(arr) / sizeof(int);
int target = 6;
int idx = binarySearch(arr, n, target);
if (idx != -1) {
cout << "Found at index " << idx << endl;
} else {
cout << "Not found" << endl;
}
return 0;
}
```
这个函数接受三个参数:一个有序顺序表 `arr`,它的长度 `n`,以及要查找的目标元素 `target`。它返回目标元素在顺序表中的下标,如果不存在则返回 `-1`。在主函数中,我们创建了一个有序顺序表 `arr`,然后调用 `binarySearch` 函数来查找目标元素 `6`。最后打印出结果。
阅读全文