powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Изучение трудов Кнута (Как изучать)
7 сообщений из 107, страница 5 из 5
Изучение трудов Кнута (Как изучать)
    #35739999
regom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Также хочу добавить, что первое дерево при добавлении отрезков необходимо делать наиболее эффективным. Т.е., если получилось так, что первое дерево содержит отрезки (a1,b1) и (a2,b2), и вот добавляется отрезок (a1,b2) (или чуть шире, но не пересекаясь с существующими отрезками в этом дереве). Тогда для устранения "провала" между b1 и а2 новый отрезок вносим в первое дерево, а отрезки (a1,b1) и (а2,b2) убираем куда-нибудь подальше (пытаемся встраивать в последующие деревья или, быть может, заводим новые).
...
Рейтинг: 0 / 0
Изучение трудов Кнута (Как изучать)
    #35740091
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По моему, эта задача уже решена (в общем случае) Гуттманом путем построения специального вида дерева (R-Tree) для индексации и быстрого поиска пространственных данных. Однако для наихудшего случая, логарифмическое время не гарантируется, поэтому здесь нужна дополнительная информация.
...
Рейтинг: 0 / 0
Изучение трудов Кнута (Как изучать)
    #35740096
алчность
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спаибо большое за идею!!!
:
regom Все отрезки рассматривал как лес деревьев, в каждом из которых отрезки не пересекаются и ....


Можно организовать список массивов (лес массивов)
каждый массив хранит упорядоченные координаты концов отрезков, отрезки из 1 массива-непересекаются.
Таким образом, каждый из массивов может содержать не более 1 искомого отрезка.
И по каждому из таких массивов можно осуществить бинарный поиск.
...
Рейтинг: 0 / 0
Изучение трудов Кнута (Как изучать)
    #35740112
алчность
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
алчностьСпаибо большое за идею!!!

тьфу

Спасибо :)


Сомниваюсь, что решение с деревьями будет более оптимальным(чисто интуитивно)
...
Рейтинг: 0 / 0
Изучение трудов Кнута (Как изучать)
    #35740183
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
алчностьСомниваюсь, что решение с деревьями будет более оптимальным(чисто интуитивно)
А зря.
...
Рейтинг: 0 / 0
Изучение трудов Кнута (Как изучать)
    #35740223
алчность
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonалчностьСомниваюсь, что решение с деревьями будет более оптимальным(чисто интуитивно)
А зря.
Интересно, а в чём смысл?(в 2-х словах)
...
Рейтинг: 0 / 0
Изучение трудов Кнута (Как изучать)
    #35756006
dilmah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
алчность,

> Имеется множество одномерных отрезков вида: (x_left,x_right).
> Требуется так организовать это множество (список), чтобы для заданного x
> временная сложность поиска отрезка, удовлетворяющего условию x_left<x< x_right
> в большинстве случаев была меньше O(n),
> где n- количество отрезков.

у тебя имелись в виду одни требования, но в постановке задачи они не отражены.

Очевидно ты имел в виду что требуется уметь еще и быстро добавлять/удалять новые отрезки.
Но ты это не написал.

Если быстро добавлять/удалять новые отрезки не нужно, то решение двольно очевидно -- просто бинарное дерево из всех концов отрезков, а в каждом узле сохраняешь информацию о тех отрезках которые "контролируют" данный участок.
...
Рейтинг: 0 / 0
7 сообщений из 107, страница 5 из 5
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Изучение трудов Кнута (Как изучать)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]