标签:变量 ace 问题 stream 相等 using 实现 大小 比较
输入数组和要查找的数x
#include <iostream>
using namespace std;
int a[1009];
int main(){
int n;cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
int x;cin>>x;
int cnt=0;
int l,r,mid;l=0,r=n-1;
while(l<=r){
mid=(l+r)/2;
cnt++;
if(a[mid]==x)break;
else if(a[mid]<x){
l=mid+1;
}
else r=mid-1;
}
if(a[mid]==x){
cout<<mid<<endl;
cout<<cnt<<endl;
}
else cout<<-1<<endl<<cnt<<endl;
return 0;
}
用了二分法搜索算法,寻找x的时间复杂度为O(logn);空间复杂度为数组空间大小,是一个常数,与变量n的取值无关。所以空间复杂度为O(1)。
标签:变量 ace 问题 stream 相等 using 实现 大小 比较
原文地址:https://www.cnblogs.com/Z20171003329/p/9824221.html