|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
31.03.2008, 19:03 | #11 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Можно завести бинарное дерево в соответствии с разложением числа по степеням двойки, "развесить" по нему числа из массива и на последней ветке повесить массив из всех индексов раскладывающегося таким образом числа в начальном массиве. Тогда всё сводится 1) к проходу по дереву (до 32-х уровней) 2) поиску в массиве индексов (вряд ли он будет большим) индексов таких, что l <= i <= r, если такое число вообще содержится в дереве 3) предварительному выходу из поиска, если число не нашлось. Можно, в принципе, оптимизировать дерево - разбивать число не побитно, а побайтно, скажем, тогда в каждом узле будет массив.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск элемента | ЭД4-0014 | Помощь студентам | 12 | 05.06.2008 21:47 |
Как проверить существование потока? | John_chek | Общие вопросы Delphi | 3 | 17.01.2008 15:16 |
создание элемента | Романнн | Общие вопросы Delphi | 6 | 13.12.2007 21:07 |
Проверка на существование | Lonix | Общие вопросы Delphi | 2 | 19.03.2007 19:42 |