下面的程序完成了以下功能:在非降序列中二分查找一个数,当v存在时返回它出现...
下面的程序完成了以下功能:在非降序列中二分查找一个数,当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
}