#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;
}
 
 
                    
                 

 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号