Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.06.2016, 12:59   #11
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Изыму из детей родителя Москвы ссылку на нее. В детей Австралии вставлю. В самой Москве ссылку на родителя поменяю. Все. А вот поиск по наименованию при любой организации проблемен. Вот нашел две Австралии без дополнительной инфы. И что?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.06.2016, 13:04   #12
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Изыму из детей родителя Москвы ссылку на нее.
Стоп! Как нашли родителя Москвы? Он что у Вас на дороге валяется?
Цитата:
В детей Австралии вставлю.
Стоп! Как Австралию нашли? Где Вы ее вообще взяли?
Цитата:
Вот нашел две Австралии без дополнительной инфы. И что?
В моем случае это все по-другому смотрится. Я же пути задаю (я же писал вроде ранее) Планета-Континенты-Европа-Москва переместить в Планета-Континенты-Австралия. Какие тут две Австралии? Даже если будет Планета-Континенты-Европа-Москва переместить в Планета-Австралия-Австралия-Австралия-Австралия проблем нет никаких. Главное чтобы на Континенте только одна Австралия была, а в глубину пофиг или там в соседних ветвях...
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 21.06.2016, 13:29   #13
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Да блин это и есть рекурсия типичная. То есть медленно.
Предрассудки. Медленно это линейный поиск.

Цитата:
В данном случае это одно и тоже.
Невежество. Это разные вещи по определению. Почитайте что такое массив. И что такое дерево.
Цитата:
В дереве? Ага, размечтались.
В дереве которое хранится в массиве. Доступ через массив.
Но доступ это не поиск.
А вот поиск быстрее через дерево O(Log(N)).
А доступ к предку вы получаете за O(1) извлекая его порядковый номер из узла и подставляя его в массив. Или через указатель, что тоже самое.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .

Последний раз редактировалось Pavia; 21.06.2016 в 13:36.
Pavia вне форума Ответить с цитированием
Старый 21.06.2016, 13:31   #14
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

Цитата:
Все узлы физически размещены в динамическом массиве. Для поиска узлов используется идентификатор (так как элементы могут удаляться идентификатор узла и его индекс в массиве это разные вещи). Суть проблемы ранее уже озвучивали, но мне не когда было ранее обращать на это внимание.
И там же говорилось, чтобы использовать "быстрые" алгоритмы поиска элемента массива с ЗАДАННЫМ идентификатором,
надо ДЕРЖАТЬ массив УПОРЯДОЧЕННЫМ по этим идентификаторам.
Либо иметь для вспомогательный массив ссылок на ЭЛЕМЕНТы массива (аналогично индексам в БД).
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 21.06.2016, 13:39   #15
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
И там же говорилось, чтобы использовать "быстрые" алгоритмы поиска элемента массива с ЗАДАННЫМ идентификатором,
надо ДЕРЖАТЬ массив УПОРЯДОЧЕННЫМ по этим идентификаторам.
Хорошо как упорядочить-то? Каждый раз элементы физически перемещать?
Цитата:
Либо иметь для вспомогательный массив ссылок на ЭЛЕМЕНТы массива (аналогично индексам в БД).
Вот я и хочу как-то придумать что-то типа того. Пока придумал группировать по уровню узла. В начале корень, затем в отдельной группе (массиве, списке - пофиг) его детей (с именами разумеется), в третьей группе внуков и т.д. Пока придумал только это. Потому и пришел за подсказкой.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 21.06.2016, 13:44   #16
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Вот я и хочу как-то придумать что-то типа того. Пока придумал группировать по уровню узла. В начале корень, затем в отдельной группе (массиве, списке - пофиг) его детей (с именами разумеется), в третьей группе внуков и т.д. Пока придумал только это. Потому и пришел за подсказкой.
Как по мне вы ввели лишнюю сущность, лишний слой которая вас только тормозит. Выкинуть её. ОЗУ вам хватит что-бы держать ваши данные. Вот когда не хватит её придётся ввести. Вот тогда деревья-Б+ и система кэшей и периодическая перестройка дерева для оптимизации. Но проще использовать готовую БД/СУБД.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 21.06.2016, 13:49   #17
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Как по мне вы ввели лишнюю сущность, лишний слой которая вас только тормозит. Выкинуть её. ОЗУ вам хватит что-бы держать ваши данные. Вот когда не хватит её придётся ввести. Вот тогда деревья-Б+ и система кэшей и периодическая перестройка дерева для оптимизации. Но проще использовать готовую БД/СУБД.
Вы видите проблему или нет? Я дал конкретную задачу:
Есть 2 пути - источник Планета-Континенты-Европа-Москва, приемник Планета-Континенты-Австралия. Перенесите Москву в Австралию. Когда поэтапно будете это делать - увидите что мне не нравится.
Цитата:
периодическая перестройка дерева для оптимизации.
Даже для ляма узлов мне видится это очень-очень-очень сомнительной идеей.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 21.06.2016, 13:52   #18
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

вспомогательный массив в виде дерева.
группировать не по уровням, а по частичным идентификаторам.
частично отсортированный массив узлов
12.23
12.35
12.12
12.76
-----
34.98
34.08
34.67
34.17
-----
14.67
14.32
14.98
14.09

вставка занимает ЧИСЛО ГРУПП операций перемещения элемента массива. (3 группы 12/14/34)
поиск занимает длина несортированной группы (4 элемента в группе)

+ массив сортированых начал (и возможно окончания группы) и желательно сортированный для быстрого выбора группы.
12 ->от ... до ...
14 ->от ... до ...
34 ->от ... до ...
идеально длина группы =1 и полностью произвольный массив узлов, но тогда большой массив групп =исходному массиву.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 21.06.2016 в 14:07.
evg_m вне форума Ответить с цитированием
Старый 21.06.2016, 13:54   #19
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
группировать не по уровням, а по частичным идентификаторам.
Подробней, я не совсем въехал по примеру.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 21.06.2016, 14:11   #20
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Я не понимаю - чем все что описано отличается от ближайшей файловой системы?
Берем любимую из них и смотрим как все работает...
В NTFS например все папочки - деревья, так что поиск по ним весьма быстр, добавление и удаление тоже ничего... чем не устраивает?
Плюс всегда можно кэшировать последние N поисков.
Кстати, реальные имена (если они не для примера) лучше заменять на хэши - быстрее будет, хотя конечно все зависит от кучи факторов (в часности от длин имен и размера хэша).
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как избавиться от запроса доступа к внешним данным Loshara Microsoft Office Excel 0 29.07.2015 14:13
Страницы доступа к данным Jimmy Lenox Microsoft Office Access 0 19.10.2012 15:12
страницы доступа к данным... AGhost Microsoft Office Access 3 21.05.2010 23:05
Создание класс с использованием методов доступа к данным El_Bint0 Помощь студентам 1 14.03.2007 10:16