Я работаю над некоторыми практическими задачами для предстоящего экзамена CS.Я надеялся, что смогу получить некоторую помощь в определении псевдокода для этого алгоритма:
Учитывая массив n
целых чисел, которые были отсортированы в возрастающем порядке, мне нужно дать описание псевдокода алгоритмавыполнить поиск диапазона А со сложностью O(r + logn)
, где r
- количество выведенных точек.Другими словами, при заданном интервале [lo, hi]
выведите все элементы массива A[i]
, где lo <= A[i] <= hi
.
Я понимаю, что 'r
' часть сложностибудет просто выводить элементы, которые находятся в пределах интервала (поместив их в отдельный массив в алгоритме).
Я не совсем уверен, как это сделать.Предполагается, что это всего лишь один алгоритм.Нужна ли рекурсия?Поскольку алгоритм должен быть log(n)
, деление массива постоянно кажется идеей.Я просто запутался в том, как это реализовать.