二分模版
详情请见http://blog.csdn.net/int64ago/article/details/7425727
//二分查找(找到返回左端,找不到返回右端) int bSearch(int x,int y,int g) { int mid,l=x,r=y; while(l<=r) { mid=(l+r)>>1; if(a[mid]>=g) r=mid-1; else l=mid+1; } return l; } //二分查找(找到返回右端,找不到返回左端) int bSearch(int x,int y,int g) { int mid,l=x,r=y; while(l<=r) { mid=(l+r)>>1; if(a[mid]>g) r=mid-1; else l=mid+1; } return r; }