尝试编写一个算法来实现二进制搜索。用c++
时间: 2024-06-19 16:04:46 浏览: 13
二进制搜索是一种高效的查找算法,也被称为折半查找。它只能用于已经排序的数组或列表。下面是一个用C++实现二进制搜索的示例代码:
```
#include <iostream>
using namespace std;
int binarySearch(int arr[], int left, int right, int x)
{
if (right >= left) {
int mid = left + (right - left) / 2;
if (arr[mid] == x)
return mid;
if (arr[mid] > x)
return binarySearch(arr, left, mid - 1, x);
return binarySearch(arr, mid + 1, right, x);
}
return -1;
}
int main()
{
int arr[] = { 2, 3, 4, 10, 40 };
int n = sizeof(arr) / sizeof(arr);
int x = 10;
int result = binarySearch(arr, 0, n - 1, x);
(result == -1) ? cout << "Element is not present in array"
: cout << "Element is present at index " << result;
return 0;
}
```
这段代码通过递归调用函数`binarySearch`实现了二进制搜索。如果`x`存在于数组中,则返回其索引值;否则返回-1。