3.以下代码是干什么用的?
#include<bits/stdc++.h>
using namespace std;
int n,a[110],x;
int main(){
cin >> n;
for(int i = 1;i <= n;i++){
cin >> a[i];
}
cin >> x;
int l = 1,r = n,mid,ans = -1;
while(l <= r){
mid = (l + r) / 2;
if(x == a[mid]){
ans = mid;
break;
}else if(x < a[mid]){
r = mid - 1;
}else if(x > a[mid]){
l = mid + 1;
}
}
cout << ans;
return 0;
}
A.递归
B.递推
C.贪心
D.二分