生成二叉查找算法代码c++语言
时间: 2023-10-23 11:09:40 浏览: 69
用C++实现二叉树的查找功能
4星 · 用户满意度95%
以下是C++语言实现的二叉查找算法代码:
```c++
#include <iostream>
using namespace std;
// 二叉查找算法
int binarySearch(int arr[], int left, int right, int target) {
if (left > right) { // 当左边界大于右边界时,查找失败
return -1;
}
int mid = left + (right - left) / 2; // 计算中间位置
if (arr[mid] == target) {
return mid; // 如果中间位置的值等于目标值,则查找成功
} else if (arr[mid] > target) {
return binarySearch(arr, left, mid - 1, target); // 如果中间位置的值大于目标值,则在左半部分查找
} else {
return binarySearch(arr, mid + 1, right, target); // 如果中间位置的值小于目标值,则在右半部分查找
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int n = sizeof(arr) / sizeof(arr[0]); // 数组长度
int target = 5; // 目标值
int result = binarySearch(arr, 0, n - 1, target); // 查找目标值
if (result == -1) {
cout << "查找失败" << endl;
} else {
cout << "查找成功,目标值的下标为:" << result << endl;
}
return 0;
}
```
在上面的代码中,我们定义了一个名为`binarySearch`的函数来实现二叉查找算法。该函数接受四个参数,分别是要查找的数组`arr`、查找范围的左边界`left`、右边界`right`以及目标值`target`。当左边界大于右边界时,表示查找失败,返回-1;当中间位置的值等于目标值时,表示查找成功,返回中间位置的下标;否则,根据中间位置的值与目标值的大小关系,确定在左半部分或右半部分查找。
在主函数中,我们定义了一个数组`arr`和目标值`target`,并调用`binarySearch`函数进行查找。如果返回的结果为-1,表示查找失败;否则,表示查找成功,输出目标值的下标。
阅读全文