Рекурсивная функция для поиска позиции числа (python) - PullRequest
0 голосов
/ 25 мая 2018

У меня есть эта работа (python), и я не могу придумать способ решить эту проблему.Кто-нибудь может мне помочь?

Сделать рекурсивную функцию, которая, учитывая список упорядоченных чисел и число, возвращает позицию элемента, равную числу или непосредственно превышающую число.Чтобы найти позицию, реализуйте алгоритм двоичного поиска:

1 - Сравните данное число с номером центральной позиции списка.

2 - Если число меньше, повторитепервый шаг к первой половине списка.

3- Если число больше, повторите первый шаг ко второй половине списка.

4- Повторяйте шаги до тех пор, поканомер найден или пока область поиска не уменьшится до одного элемента.

1 Ответ

0 голосов
/ 25 мая 2018

Вы уже знаете шаги.Так что это просто вопрос их реализации.Найдите центральное положение и примените шаги.

def f(numbers, n, start, end):
    middle = (end-start) // 2
    if numbers[middle] == n:
        return middle
    if end - start == 1:
        return 'not found'
    if numbers[middle] < n:
        return f(numbers, n, start, middle)
    else:
        return f(numbers, n, middle, end)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...