Словарь реализации (Баланс двоичного поиска дерево против хэш-таблицы)

голоса
1

При каких обстоятельствах было бы лучше реализовать словарь ADT с использованием сбалансированного двоичного дерева поиска, а не хэш-таблицы?

Мое предположение было то, что всегда лучше использовать дерево двоичного поиска из-за его естественный порядок.

Но это правда, что время поиска хеш-таблицы может быть так хорошо, как O (1), против O (LogN) для бинарного дерева.

так что я не уверен, что circumtaces будет.

Задан 15/04/2011 в 02:13
источник пользователем
На других языках...                            


3 ответов

голоса
0

Ваш вопрос уже содержит ответ:

Если вам не требуется никакой внутренней упорядоченность затем использовать хэш-таблицу для повышения производительности. Если ваши требования требуют своего рода упорядочение затем рассмотреть вопрос об использовании дерева.

Ответил 15/04/2011 в 02:16
источник пользователем

голоса
1

Хеш-таблицы могут иметь проблемы с производительностью, когда они заполняются и должны перераспределять память (в контексте жесткой системы реального времени) .Binary деревья не имеют этой проблемы. Хэш-таблицы нужно больше памяти, чем они на самом деле использовать, где, как бинарные деревья использовать столько памяти, сколько им нужно.

Ответил 15/04/2011 в 02:19
источник пользователем

голоса
0

Временная сложность для словаря является:

-----------------------------------------
| Operation   |  Dictionary |    BST    | 
-----------------------------------------
| Insert      |  O(1)       | O(log(n)) |
-----------------------------------------
| Delete      |  O(1)       | O(log(n)) |
-----------------------------------------
| Search      |  O(1)       | O(log(n)) |
-----------------------------------------

Так где же вы используете BST против словаря? Вот некоторые основные преимущества BST.

  • С BST вы всегда операцию O (журнал (п)), но изменение размера хэш-таблицы является дорогостоящей операцией
  • Если вам необходимо получить ключи в отсортированном порядке вы можете получить их перемещения Симметричного дерева. Сортировка не естественно словарь
  • Ведение статистики, как найти ближайший нижний и больший элемент, или запрос диапазона.
Ответил 29/01/2019 в 21:47
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more