折半查找算法C++实现
时间: 2023-07-11 09:06:50 浏览: 98
折半查找的基本思想-C++东南大学何洁月课件(总)
以下是一个简单的折半查找算法的C++实现:
```cpp
#include <iostream>
using namespace std;
int binarySearch(int arr[], int low, int high, int target) {
while (low <= high) {
int mid = (low + high) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
low = mid + 1;
} else {
high = mid - 1;
}
}
return -1; // target不存在于数组中
}
int main() {
int arr[] = {1, 3, 5, 7, 9, 11};
int n = sizeof(arr) / sizeof(int);
int target = 7;
int index = binarySearch(arr, 0, n - 1, target);
if (index == -1) {
cout << "Target not found." << endl;
} else {
cout << "Target found at index " << index << endl;
}
return 0;
}
```
在这个例子中,我们定义了一个`binarySearch`函数,它接受一个整数数组`arr`、数组的下界和上界`low`和`high`以及要查找的目标值`target`。在函数中,我们使用了一个while循环来一直查找直到我们找到了目标值或者确定了它不存在于数组中。在每次迭代中,我们计算mid(数组的中间位置),并将其与目标值进行比较。如果mid等于目标值,则我们找到了目标值,返回mid。否则,如果mid小于目标值,则我们向右移动low指针,反之则向左移动high指针。如果我们在查找中没有找到目标值,则返回-1表示目标不存在于数组中。
阅读全文