Добрый день.
Сижу второй день не могу понять как написать рекурсивный бинарный поиск.
Задание состоит в следующем, найти индекс левой границы
, а в случае если искомого элемента в таблице нет, вернуть -1;
Код должен быть именно рекурсивным.
private static int FindLeftBorder(long[] arr, long value)
{
return BinSearchLeftBorder(arr, value, -1, arr.Length);
}
Я написал код, но никак не могу понять, как возвращать -1?
public static int BinSearchLeftBorder(long[] array, long value, int left, int right)
{
if (left == right) return left;
var m = (left + right) / 2;
if (array[m] < value)
return BinSearchLeftBorder(array, value, m, right-1 );
return BinSearchLeftBorder(array, value, left, m);
}
Я очень ещё начинающий любитель, поэтому прошу прощения сразу за глупость данного вопроса.
Заранее Спасибо всем за ответ!