int a[] = {1, 2, 4, 5, 7, 8}; //返回最后一个小于k的数的下标 int find1(int k) { int l = 0, r = 5; while(l < r) { int mid = l + r + 1 >> 1; if(a[mid] < k) l = mid; else r = mid - 1; } return l; }
这是个什么类型的二分(如左闭右开之类的)?
求这个二分的实数版本。