二分法查找一个数字
#include
using namespace std;
void main()
{
int i=1,item,flag=0;
int Start=0,Finish=1000;
int table[1000];
for(i=Start;i<=Finish;i++)
{
table[i]=i;
cout<
}
cout<
cout<<"请输入你要查找的数:"<
cin>>item;
i=Finish-Start;
while((Finish-Start)>1&&table[i]!=item)
{
if (table[i]
if (table[i]>item) Finish=i-1;
i=Finish-Start;
}
if(table[i]==item)
{
cout<<"数字已经找到!"<
}
else
{
cout<<"没有找到!"<
}
}
第二种:
#include
using namespace std;
void main()
{
int i=1,item,flag=0;
int Start=0,Finish=10;
int table[10];
cout<<"请输入你的数字"<
for(i=0;i<10;i++)
{
cin>>table[i];
}
cout<
cout<<"请输入你要查找的数:"<
cin>>item;
i=Finish-Start;
while((Finish-Start)>1&&table[i]!=item)
{
if (table[i]
if (table[i]>item) Finish=i-1;
i=Finish-Start;
}
if(table[i]==item)
{
cout<<"数字已经找到!"<
}
else
{
cout<<"没有找到!"<
}
}
算法~~~~~~~~~~~~~~~~~~~~~~~~~~~!
#include
using namespace std;
int cz (int a[],int k,int n)
{
int low=0,high=n-1;
while(low<=high)
{
int mid=(low+high)/2;
if(k==a[mid])
return mid;
else if(khigh=mid-1;
else low=mid+1;
}
return -1;
}