请实现有重复数字的有序数组的二分查找。
输出在数组中第一个大于等于查找值的位置,如果数组中不存在这样的数,则输出数组长度加一。
输入格式:
输入第一行有两个数,第一个数为数组长度n(≤10^6),第二个数为需要查找的数。
接下来有n个整数,以空格或换行符分隔。
输出格式:
输出待查找的数的位置。
输入样例:
5 4
1 2 4 4 5
输出样例:
3
样例解释:
有5个数,查找4出现的位置,4第一次出现在第3个位置,所以输出3。
不需要用到二分,如需要二分知识,请看下面链接
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,i,x,k=0,a[1000005];
cin>>n>>x;
for(i=1;i<=n;i++)cin>>a[i];
for(i=1;i<=n;i++){
if(x<=a[i]){k=1;cout<<i;break;}
}
if(k==0){
cout<<n+1;
}
return 0;
}