@Evg Спасибо за сообщение. Я исправил ошибку.
новании найденного определенияВот
Возвращает итератор, указывающий на первый элемент в отсортированном диапазоне [first, last), который сравнивает не меньше значения. Сравнение выполняется с помощью оператора <для первой версии или comp для второй.
Какой будет C эквивалентная реализация lower_bound (). Я понимаю, что это будет модификация бинарного поиска, но не могу точно определить точную реализацию.
int lower_bound(int a[], int lowIndex, int upperIndex, int e);
Пример дела:
int a[]= {2,2, 2, 7 };
lower_bound(a, 0, 1,2) would return 0 --> upperIndex is one beyond the last inclusive index as is the case with C++ signature.
lower_bound(a, 0, 2,1) would return 0.
lower_bound(a, 0, 3,6) would return 3;
lower_bound(a, 0, 4,6) would return 3;
Мой код попытки приведен ниже:
int low_bound(int low, int high, int e)
{
if ( low < 0) return 0;
if (low>=high )
{
if ( e <= a[low] ) return low;
return low+1;
}
int mid=(low+high)/2;
if ( e> a[mid])
return low_bound(mid+1,high,e);
return low_bound(low,mid,e);
}