写一段c++代码实现用二分法完成元素的查找。用递归法实现。
时间: 2023-12-10 19:40:56 浏览: 42
以下是使用递归的二分查找的C++代码:
```c++
#include <iostream>
using namespace std;
int binarySearch(int arr[], int low, int high, int key) {
if (high >= low) {
int mid = low + (high - low) / 2;
if (arr[mid] == key)
return mid;
if (arr[mid] > key)
return binarySearch(arr, low, mid - 1, key);
return binarySearch(arr, mid + 1, high, key);
}
return -1;
}
int main() {
int arr[] = { 10, 20, 30, 40, 50, 60 };
int n = sizeof(arr) / sizeof(arr[0]);
int key = 50;
int result = binarySearch(arr, 0, n - 1, key);
(result == -1) ? cout << "Element is not present in array"
: cout << "Element is present at index " << result;
return 0;
}
```
在上面的代码中,我们使用递归实现了二分查找算法。该算法首先检查中间元素,如果中间元素与所需元素相等,则返回中间元素的索引。否则,如果所需元素小于中间元素,则在左侧子数组中继续搜索,否则在右侧子数组中继续搜索。如果元素不在数组中,则返回-1。