quantum

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
#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)
{
while(left<=right){
int middle=(left+right)/2;
switch(compare(list[middle],searchnum)){
case 1:
right=middle-1;
break;
case 0:
return middle;
case -1:
left=middle+1;
break;
}
}
return -1;
}
int compare(int x,int y)
{
if(x==y)
return 0;
else if(x<y)
return -1;
else
return 1;
}


 

posted on 2012-02-28 16:44  quantum  阅读(218)  评论(0)    收藏  举报