#include<iostream>
using namespace std;
int find(int,int[],int);
int main()
{
while(1)
{
int a[]={1,32,55,67,68,70,70,71,73,82,101,198,200,201};//要是有重数,则不知返回哪个
int b;
cout<<"请输入要查找的数据:";
cin>>b;
int check=find(b,a,13);
if(check==13)
{
cout<<"没有查找到该数据"<<endl;
}
else
cout<<b<<"在数组a中的位置是"<<check+1<<endl;
}
}
int find(int m,int a[],int n)
{
int o=0,h=n-1,i;
while(o<=h)
{
i=(o+h)/2;
if(a[i]==m)
{
return i;
}
if(a[i]<m)
{
o=i+1;
}
else
h=i-1;
}
return n;
}//二分法在排好序的数组中,效率很高。
【c++程序】用二分法查找数据
最新推荐文章于 2024-08-19 15:21:18 发布