c++经典的递归案例:二分查找
作者:野牛程序员:2023-11-20 10:00:58 C++阅读 2714
c++经典的递归案例:二分查找
#include <iostream>
// 经典的递归案例:二分查找
int binarySearch(int arr[], int low, int high, int target) {
// 基本情况:如果low大于high,表示数组中没有找到目标元素
if (low > high) {
return -1;
} else {
// 计算中间索引
int mid = low + (high - low) / 2;
// 如果中间元素等于目标元素,返回中间索引
if (arr[mid] == target) {
return mid;
} else if (arr[mid] > target) {
// 如果中间元素大于目标元素,继续在左半部分查找
return binarySearch(arr, low, mid - 1, target);
} else {
// 如果中间元素小于目标元素,继续在右半部分查找
return binarySearch(arr, mid + 1, high, target);
}
}
}
int main() {
// 有序数组
int sortedArray[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int target = 6;
// 在有序数组中查找目标元素
int result = binarySearch(sortedArray, 0, 9, target);
// 输出查找结果
if (result != -1) {
std::cout << "目标元素 " << target << " 在数组中的索引是 " << result << std::endl;
} else {
std::cout << "目标元素 " << target << " 不在数组中" << std::endl;
}
return 0;
}野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:c++经典的递归案例:汉诺塔问题
- 下一篇:c++ 经典的递归案例:反转字符串
