用c++ 实现 二分查找 前提是先把数组排列好
#include<iostream>
using namespace std;
// 可以递归调用的二分查找
int search(const int(&a)[10], int start, int end, int target)
{
// 基准情况:目标值超出范围,或者start > end,说明没有找到
if (target < a[start] || target > a[end] || start > end)
return -1;
// 取二分的中间坐标
int mid = (start + end) / 2;
// 比较中间值和目标值的大小
if (a[mid] == target)
return mid; // 找到了
else if (a[mid] > target)
return search(a, start, mid - 1, target); // 比目标值大,在更小的部分找
else
return search(a, mid + 1, end, target); // 比目标值小,在更大的部分找
}
int main()
{
int arr[10] = { 1,2,3,4,5,6,9,12,25,38 };
int key = 22;
int size = sizeof(arr) / sizeof(arr[0]);
int result = search(arr, 0, size - 1, key);
result == -1
? cout << "在数组中没有找到" << key << "!" << endl
: cout << "在数组中找到" << key << ",索引下标为:" << result << endl;
cin.get();
}
posted on 2023-09-14 10:14 songsonglailou 阅读(14) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具