У меня есть отсортированный массив целых чисел, которые могут быть положительными негативом:Наиболее эффективный способ найти диапазон в массиве
[ -30, -13, -10, -4, -1, 4, 23, 55, 90, 234, 433, 500 ]
Мне нужно найти индексы наименьшее число, которое больше или равно нулю и наибольшее число, которое меньше или равно 400.
Каков наиболее эффективный способ сделать это?
(Я использую JavaScript, но любой язык или псевдокод будет в порядке)
Двоичный поиск? .. – zerkms
@zerkms: Дважды бинарный поиск каждого значения? Или есть лучший способ? – Naor
Двоичный поиск - O (log n). Двоичный поиск обоих значений независимо друг от друга равен O (2 * log n) -> O (k * log n) -> O (log n). Это не имеет большого значения. – abl