折半查找(递归实现)


#include<iostream>
using namespace std;
const int list_size=10;
int binsearch(int list[],int searchnum,int left,int right);
int compare(int x,int y);
int main()
{
int list[]={1,2,3,5,7,8,9,12,15,18};
cout<<"输入要查找的数: ";
int seanum;
cin>>seanum;
int suc=binsearch(list,seanum,0,list_size);
if(suc==-1)
cout<<"未查到数字"<<endl;
else
cout<<"已查找到数字"<<endl;
return 0;
}
int binsearch(int list[],int searchnum,int left,int right)
{
if(left<=right){
int middle=(left+right)/2;
switch(compare(list[middle],searchnum)){
case 1:
return binsearch(list,searchnum,left,middle-1);
case 0:
return middle;
case -1:
return binsearch(list,searchnum,middle+1,right);
}
}
return -1;
}
int compare(int x,int y)
{
if(x==y)
return 0;
else if(x<y)
return -1;
else
return 1;
}


优质内容筛选与推荐>>
1、一个串口通讯类[转]
2、结合肤色分割与平滑的人脸图像快速美化
3、Autorelease对象什么时候释放?
4、PHP中include()与require()的区别说明
5、What CommandName's to use in a FormView


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号