下面的程序完成了以下功能:在非降序列中二分查找一个数,当v存在时返回它出现的第一个位置,如果不存在,返回这样一个下标i,在此处插入v(原来的元素A[i], A[i+1],…全部向后移动一个位置)后序列仍然有序:
#include<iostream>
using namespace std;
int lower_bound(int *A, int l, int r, int v) {
int mid;
while (l < r) {
mid = ;
if ( ) r = mid;
else l = mid + 1;
}
return l;
}
int main() {
int A[10] = {0, 0, 1, 2, 4, 5, 10, 20, 20, 30};
// 在 A 数组里用lower_bound查找 40
cout << lower_bound( ) << endl;
return 0;
}