binarysearch.cpp
时间: 2023-08-23 07:12:29 浏览: 87
以下是一个简单的二分查找的 C++ 实现:
```c++
#include <iostream>
using namespace std;
int binarySearch(int arr[], int l, int r, int x) {
if (r >= l) {
int mid = l + (r - l) / 2;
if (arr[mid] == x)
return mid;
if (arr[mid] > x)
return binarySearch(arr, l, mid - 1, x);
return binarySearch(arr, mid + 1, r, x);
}
return -1;
}
int main() {
int arr[] = {2, 3, 4, 10, 40};
int n = sizeof(arr) / sizeof(arr[0]);
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` 函数接受四个参数:一个数组、数组的左边界、数组的右边界和要查找的元素。函数首先计算数组的中间元素,然后将其与要查找的元素进行比较。如果中间元素等于要查找的元素,则返回中间元素的索引。否则,如果中间元素大于要查找的元素,则递归地在左半部分查找。如果中间元素小于要查找的元素,则递归地在右半部分查找。如果找不到要查找的元素,则返回 -1。在 `main` 函数中,我们使用上述函数在给定的数组中查找元素 10,并输出结果。
阅读全文