二分查找
//二分查找 INIT:a[] bool BinSearch(int *a,int low,int high,int target){ //a数组递增; while(low<=high){ int mid=(low+high)/2; if(a[mid]==target) return true; if(a[mid]>target) high=mid-1; else low=mid+1; } return false; } //找到一个位置使右边的数>=此位的数 INIT:arr[] int BSearchUpperBound(int arr[], int low, int high, int target){ while(low<=high){ int mid = (low+high)/2; if(arr[mid]>=target) high=mid-1; if(arr[mid]<target) low=mid+1; } return low-1; }