C++趣味编程

折半查找。

复制代码
 1 #include <iostream>
 2 using namespace std;
 3 #define N 10
 4 int main()
 5 {
 6     int i,a[N]={-3,4,7,9,13,45,67,89,100,180},low=0,high=N-1,mid,k=-1,m;
 7     cout<<"a数组中数据如下"<<endl;
 8     for(int i=0;i<N;i++)
 9     {
10         cout<<a[i]<<" "; 
11      } 
12     cout<<endl;
13     cin>>m;
14     while(low<=high)
15     {
16         mid=(low+high)/2;
17         if(m<a[mid])
18         {
19             high=mid-1;
20         }
21         else
22         {
23             if(m>a[mid])
24             low=mid+1;
25             else
26             {
27                 k=mid;
28                 break;
29             }
30         }    
31     }
32     if(k>=0)
33     {
34         cout<<m<<","<<k<<endl;
35     }
36     else
37     {
38         cout<<"no found"<<endl;
39     }
40     
41 }
复制代码

 

posted @   新晋软工小白  阅读(75)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示