![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#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 |