适用于顺序表
#include <iostream>
using namespace std;
int erfen(int a[],int n,int k)
{
int low=0;
int high=n-1;
while(low<=high)
{
int zj=(low+high)/2;
if(a[zj]==k)
return zj;
else if(a[zj]<k)
{
low=zj+1;
}
else
{
high=zj-1;
}
}
return -1;
}
int main(){
int a[5]={2,8,9,56,100};
int k=90;
int p=erfen(a,5,k);
if(p!=-1)
{
cout<<k<<"在数组a的第"<<p<<"个位置"<<endl;
}
else
{
cout<<"数组a没有"<<k<<"的位置"<<endl;
}
}
二分查找的判定树