本文章详细介绍了如何在C++中实现一个高效的二分查找算法,并探讨了其优化技巧和适用场景。
实现二分查找的完美算法 C++ 带有测试代码和示例:
首先定义一个函数 `binarySearch` 来执行二分查找操作。
```cpp
int binarySearch(int arr[], int left, int right, int target) {
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == target)
return mid;
else if(arr[mid] < target)
left = mid + 1;
else
right = mid - 1;
}
// 如果未找到目标值,返回-1
return -1;
}
```
接下来编写一个 `main` 函数来测试二分查找算法的正确性。
```cpp
#include
using namespace std;
int main() {
int arr[] = {2, 3, 4, 10, 40};
int n = sizeof(arr)/sizeof(arr[0]);
// 测试示例一:寻找元素值为10的位置
cout << Index of element 10: << binarySearch(arr, 0, n-1, 10) << endl;
// 测试示例二:查找不存在的元素,如5
cout << Index of non-existent element 5:
<< binarySearch(arr, 0, n - 1 , 5) << endl;
return 0;
}
```
通过上述代码可以实现并测试一个高效的二分查找算法。