c++实现完整代码数据结构查找算法在一个递增有序的线性表中利用二分法查找数据元素x
时间: 2025-01-02 15:45:45 浏览: 67
在C++中,二分查找(Binary Search),也称为折半查找,通常用于已排序的数据结构中,如数组。下面是一个简单的递归版本的二分查找算法示例,假设我们有一个递增有序整数数组`arr`:
```cpp
#include <iostream>
// 定义二分查找函数
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;
// 如果中间值大于目标值,搜索左半部分
else if (arr[mid] > x)
return binarySearch(arr, left, mid - 1, x);
// 否则搜索右半部分
else
return binarySearch(arr, mid + 1, right, x);
}
// 如果未找到,返回-1表示不存在
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);
// 输出结果
if (result != -1)
std::cout << "Element found at index: " << result << std::endl;
else
std::cout << "Element not found in the array." << std::endl;
return 0;
}
```
在这个例子中,如果`x=10`存在于数组中,程序会找到并返回它的索引;如果不在,返回-1。
阅读全文
相关推荐

















