遇到老师留的作业中要求用二分查找查找元素,因为对piviot中轴的位置没有判断清楚,就各种犯错
下面是zy大佬给的代码:(用c➕➕写的代码)
用二分的条件必须要求数组是排好序的
#include<iostream>
#define N 5
using namespace std;
int main()
{
long long a[N],x,i,front,mid,end;
cout<<"import the number group"<<endl;
for(i=0;i<N;i++)//数组最好是从0开始
{
cin>>a[i];
}
cout<<"import 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<<"NO this number"<<endl;
}else{
cout<<"in "<<mid+1<<endl;
}
return 0;
}