题目描述
在一个单调递增的序列里查找X。
如果找到x,则返回x在数组中的位置
如果没有找到,则返回-1
输入格式
第1行:1个整数N(1<=N<=2000000), 表示元素的个数
第2行开始的若干行,每行10个空格分开的整数,总共N个整数,即为数组元素。
最后1行,1个整数X,表示要查找的元素
序列的位置从1开始编号。
输出格式
第1行:一个整数,表示x在序列中的位置。如果没有找到,则返回-1
样例
样例输入
复制5
1 3 5 7 9
7
样例输出
复制4
_______________________________________________________________________________________
日常发作业题解。
一开始竟然写成冒泡了,呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜
也是简单爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆爆表的题
写作不易,点个赞呗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
_____________________________________________________________________________
#include <bits/stdc++.h>
using namespace std;
long long a[10000005],n,mid,m;
int main(){cin>>n;for(int i=1;i<=n;i++){scanf("%lld",&a[i]);}cin>>m;int l=1,r=n;while(l<r){mid=(l+r)/2;if(a[mid]<m)l=mid+1;else r=mid;}if(a[l]!=m)cout<<"-1";else cout<<l;
}