Я исследовал определения Т-деревьев и B- / B + деревьев. Из работ в Интернете , я понимаю , что B-дерева лучше выполнять в иерархической памяти, такие как жесткие диски и кэшированной память.
То, что я не могу понять, почему Т-деревья / используются даже для плоской памяти?
Они рекламируются как космическая эффективной альтернатива AVL дерев.
В худшем случае, все листовые узлы Т-дерева содержат только один элемент, и все внутренние узлы содержат минимальное количество животных, которая близка к полному. Это означает, что в среднем только половина отведенного пространства используется. Если я не ошибаюсь, это то же самое, как использование в худшем случае B-деревьев, когда узлы В-дерева наполовину.
Если предположить, что оба дерева хранить ключи локально в узлах, но использовать указатели для обозначения записей, единственное отличие в том, что B-деревья должны хранить указатели для каждой из ветвей. Это, как правило, вызывает до 50% накладных расходов или менее (более Т-деревьев), в зависимости от размера клавиш. На самом деле, это близко к ожидаемому накладных расходов в AVL деревья, не предполагая родительского указателя, записей, встроенные в узлы, ключи, встроенные в записи. Является ли это ожидаемый выигрыш в эффективности, что позволяет нам использовать B-дерева, вместо этого?
T-деревья, как правило, реализуются на вершине АВЛ деревьев. AVL деревья более сбалансированы, чем B-деревьев. Может ли это быть связано с применением Т-деревьев?













