1. 程式人生 > >二分查找一個數

二分查找一個數

clu while r+ getchar() dir char work blog return

#include <bits/stdc++.h>
using namespace std;
inline int read(){
    int num=0,f=1; char c=getchar();
    while(!isdigit(c)){if(c==-) f=-1; c=getchar();}
    while(isdigit(c)){num=(num<<1)+(num<<3)+(c^48); c=getchar();}
    return num*f;
}
int a[100],n,m;
inline int in(){
    n=read();
    
for(int i=1;i<=n;i++) a[i]=read(); m=read(); } int lower_bound(int size,int key){ int len=size,l=1,r=size,mid,dir; while(l<r){ len>>=1; dir=l+len; if(a[dir]<key) l=dir+1; if(a[dir]>key) r=dir-1; if(a[dir]==key){ l=dir; break
; } } return l; } inline int work(){ cout<<lower_bound(n,m); } int main(){ in(); work(); }

二分查找一個數