от
Мне удалось найти информацию о нескольких собственн-балансируя
BST
s через несколько источников, но я не нашел каких-либо хорошие подробным описанием, какой из них лучше использовать в той или иной ситуации (или если это действительно не имеет значения). Я хочу
BST
, что является оптимальным для хранения свыше десяти миллионов узлов. Порядок ввода узлов состоит в основном случайные, и я никогда не придется удалять узлы, поэтому ввод времени-это единственное, что нужно будет оптимизировать. Я намерен использовать его для хранения ранее посещенных игр в игра-головоломка, так что я могу быстро проверить, если предыдущая конфигурация уже сталкивался.

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

5 Ответы

0 голосов
от
Мне удалось найти информацию о нескольких собственн-балансируя
BST
s через несколько источников, но я не нашел каких-либо хорошие подробным описанием, какой из них лучше использовать в той или иной ситуации (или если это действительно не имеет значения). Я хочу
BST
, что является оптимальным для хранения свыше десяти миллионов узлов. Порядок ввода узлов состоит в основном случайные, и я никогда не придется удалять узлы, поэтому ввод времени-это единственное, что нужно будет оптимизировать. Я намерен использовать его для хранения ранее посещенных игр в игра-головоломка, так что я могу быстро проверить, если предыдущая конфигурация уже сталкивался.
0 голосов
от
Красно-черный лучше, чем Авл для установки тяжелых приложений. Если вы видите относительно однородным посмотреть вверх, то красно-черный путь. Если вы видите относительно несбалансированный взгляд вверх, где еще недавно просмотренных элементов, скорее всего, будут еще раз просмотрены, вы хотите использовать скошенные деревья.
0 голосов
от
Зачем использовать
BST
вообще? Из вашего описания словаря будет работать так же хорошо, если не лучше. Единственная причина для использования
BST
бы, если бы вы хотели перечислить содержимое контейнера в ключевом порядке. Это, конечно, не звучит, как вы хотите сделать, что в этом случае пойти на хэш-таблице.
O(1)
вставки и поиска, не беспокойтесь об удалении, что может быть лучше?
0 голосов
от
Два самобалансировку
BST
s я лучше всего знаком с красно-черное и
AVL
, поэтому я не могу сказать наверняка, если какие-либо другие решения лучше, но насколько я помню, красно-черное и быстрее вставки и извлечения медленнее по сравнению с
AVL
. Так что если прошивка имеет более высокий приоритет, чем получение, красно-черный может быть лучшим решением.
0 голосов
от
[хэш-таблицы] за O(1) вставки и поиска Я считаю, что это неправильно. Прежде всего, если вы ограничиваете скорость перебора должна быть конечной, вы можете хранить элементы в массив и сделать за O(1) линейного сканирования. Или вы могли бы shufflesort массив, а потом сделать линейное сканирование в O(1) ожидаемое время. Когда вещи конечны, вещи легко О(1). Так что пусть ваша хэш-таблица будет хранить любую произвольную битовую строку; это не имеет большого значения, как долго, как существует бесконечное множество ключей, каждый из которых конечны. Тогда вы должны прочитать все биты любого запроса и ввода ввода, иначе я вставлю У0 в пустой хэш и запросов от Y1, где y0 и Y1 отличаются на один бит, который вы не смотрите. Но допустим длин ключей не параметра. Если ваш ввод и поиск займет O(1), в частности хеширования занимает O(1) времени, что означает, что вы только посмотрите на конечное количество на выходе из хэш-функции (от которого, вероятно, только конечный вывод, удовлетворено). Это означает, что с конечным числом ведер, должно быть бесконечное множество строк, которые имеют одинаковый хэш-значение. Допустим, я вставляю много, т. е.
...