В чем разница между кучей и деревом неудачников при внешней сортировке? - PullRequest
8 голосов
/ 07 октября 2011

Я чувствовал, что они очень похожи друг на друга, за исключением некоторых концепций . При внешней сортировке их функции в основном одинаковы, то есть найти минимальное / максимальное значение в k run . Так есть ли существенные различия между ними двумя?

1 Ответ

0 голосов
/ 28 ноября 2018

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

Наконец, чтобы понять конкретное качество дерева проигравших, рассмотрим следующую проблему: Предположим, у нас есть k последовательностей, каждая из которых отсортирована в неубывающем порядке, которые должны быть объединены в одну последовательность в неубывающем порядке.Это может быть достигнуто путем многократной передачи элемента с наименьшим ключом в выходной массив.Наименьший ключ должен быть найден из ведущих элементов в k последовательностях.Обычно для этого требуется k - 1 сравнение для каждого переданного элемента.Однако, с деревом неудачников, это может быть уменьшено до log2 k сравнений на элемент.

Источник: Справочник по структурам данных и приложениям, Динеш Мехта

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...