分治1--二分查找
分治1--二分查找
打赏
一、心得
二、题目和分析
三、代码和结果
1 #include <iostream> 2 using namespace std; 3 int a[10]={1,2,4,5,7,8,9,10,13,20}; 4 5 6 //非递归 7 int find(int i){ 8 int l=0,r=9; 9 int mid=(l+r)/2; 10 while(l<=r){ 11 mid=(l+r)/2; 12 if(a[mid]==i) return mid; 13 else if(i<a[mid]){ 14 r=mid-1; 15 //cout<<"l:"<<l<<" "<<"rr:"<<r<<endl; 16 } 17 else{ 18 l=mid+1; 19 //cout<<"ll:"<<l<<" "<<"r:"<<r<<endl; 20 } 21 } 22 return -1; 23 } 24 //递归 25 int find_recusion(int i,int l,int r){ 26 if(l<=r){ 27 int mid=(l+r)/2; 28 if(a[mid]==i) return mid; 29 else if(i<a[mid]){ 30 find_recusion(i,l,mid-1); 31 } 32 else{ 33 find_recusion(i,mid+1,r); 34 } 35 36 } 37 else{ 38 return -1; 39 } 40 41 42 } 43 44 45 int main(){ 46 47 cout<<find(20)<<endl; 48 cout<<find_recusion(20,0,9)<<endl; 49 cout<<find(3)<<endl; 50 cout<<find_recusion(3,0,9)<<endl; 51 cout<<find(2)<<endl; 52 cout<<find_recusion(2,0,9)<<endl; 53 return 0; 54 }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 内存占用高分析
· .NET Core GC计划阶段(plan_phase)底层原理浅谈
· .NET开发智能桌面机器人:用.NET IoT库编写驱动控制两个屏幕
· 用纯.NET开发并制作一个智能桌面机器人:从.NET IoT入门开始
· 一个超经典 WinForm,WPF 卡死问题的终极反思
· 支付宝事故这事儿,凭什么又是程序员背锅?有没有可能是这样的...
· 在线客服系统 QPS 突破 240/秒,连接数突破 4000,日请求数接近1000万次,.NET 多
· C# 开发工具Visual Studio 介绍
· 在 Windows 10 上实现免密码 SSH 登录
· C#中如何使用异步编程