二分法查找
程序员文章站
2022-03-14 22:52:45
...
百度说的很明白哈哈,就是在一个大小排序好的数组里面查找,挺神奇的。验证了几次都可以。两边夹着查找,判断中间的mid是否等于查找的数就可以了。
#include<iostream>
#define N 10
using namespace std;
int main()
{
int a[N],front,end,mid,x,i;
cout<<"请输入已排好序的a数组元素:"<<endl;
for(i=0;i<N;i++)
cin>>a[i];
cout<<"请输入待查找的数x:"<<endl;
cin>>x;
front=0;
end=N-1;
mid=(front+end)/2;
while(front<end&&a[mid]!=x)
{
if(a[mid]<x)front=mid+1;
if(a[mid]>x)end=mid-1;
mid=(front+end)/2;
}
if(a[mid]!=x)
cout<<"没找到!"<<endl;
else
cout<<"找到了,在第"<<mid+1<<"项里"<<endl;
return 0;
}
上一篇: 一题算法|求随机数索引
下一篇: 校招刷题---java选择题笔记04