文章
81
粉丝
2
获赞
520
访问
11.2k
#include <iostream>
using namespace std;
int main(){
int n;
cin >> n;
int a[105];
for(int i = 0; i < n; i++){
cin >> a[i];
}
int x;
cin >> x;
// 1. 无序顺序查找
int pos1 = -1, cnt1 = 0;
for(int i = 0; i < n; i++){
cnt1++;
if(a[i] == x){
pos1 = i ;
break;
}
}
// 2. 有序顺序查找
int pos2 = -1, cnt2 = 0;
for(int i = 0; i < n; i++){
cnt2++;
if(a[i] == x){
pos2 = i;
break;
}
if(a[i] > x){
break;
}
}
// 3. 二分查找
int pos3 = -1, cnt3 = 0;
int l = 0, r = n - 1;
while(l <= r){
int mid = (l + r) / 2;
cnt3++;
if(a[mid] == x){
pos3 = mid;
break;
}else if(a[mid] < x){
l = mid + 1;
}else{
r = mid - 1;
}
...
登录后发布评论
暂无评论,来抢沙发