二分查找
#include<stdio.h> #include<stdlib.h> int a[1000000+10]; int main(){ int i,j,k,m,n,max=0; scanf("%d%d",&n,&k); for(i=1;i<=n;i++) scanf("%d",&a[i]); int l=1,r=n; while(l<=r){ m=(l+r)/2; if(a[m]==k){ printf("%d",m); break; }else if(a[m]<k) l=m+1; else if(a[m]>k) r=m-1; } if(l>r)printf("-1\n"); system("pause"); return 0; }