Бинарный поиск с дубликатами
От: Аноним  
Дата: 09.07.14 10:01
Оценка:
Здравствуйте коллеги, такая задача
есть отсортированная последовательность типа

0,1,5,6,6,6,6,6,7
нужно за логарифмическое время найти первый элемент равный либо 6 (то есть после 5 — кой) и последний (перед 7 — кой)

я попробовал реализовать так бинарно ищу последний меньший/больший если он не равен искомому ключу то возвращаю его, если но равен ключу, то запускаю снова бинарный "подпоиск" на интервале от начало/конца массива до этого элемента если "под поиск" больше не нашел ключей то возвращаю первое найденное значение иначе повторяю рекурсивно.
Но не нравиться сам реализация с под. поисками, возможно есть другие решения.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.