Обсуждение:Пирамидальная сортировка

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Некорректный код[править код]

Код для с++ некорректен! Уважаемые программисты, тестируйте свои программы! Код на странице от 12:10, 10 июня 2008 валится на тесте: "0 1 2". Код исправил. --MDA 11:00, 29 июня 2008 (UTC)[ответить]

Не заменяйте D на C, это не опечатка! Код получается нерабочий после такой замены! Alex Wolf 22:35, 25 октября 2014 (UTC)[ответить]

Так логарифм же не десятичный!!! А двойной! --80.93.115.10 05:58, 5 апреля 2008 (UTC)[ответить]

Алгоритм очень понравился. Поэтому добавил код на паскале. ShadowTheAge P.S. да, чуть не забыл комментарии

Неточность?[править код]

Кстати, почему это алгоритм требует память не зависящую от размера массива О(1)? Ведь поиск нового подходящего места в массиве - это рекурентная функция и памяти на эту функцию требуется ShadowTheAge 16:28, 26 мая 2008 (UTC)[ответить]


Тут место под хип используется в самом массиве. А по мере удаления элементов из хипа освобождается место под только что удалённый элемент хипа. Т.е. в ненулевой и непоследний момент времени в массиве будут и хип и кусок отсортированного массива. --Shaekyrian 08:13, 12 мая 2010 (UTC)[ответить]

Достаточно избавиться от хвостовой рекурсии и расходы будут O(1). --ViLco 19:06, 28 августа 2011 (UTC)[ответить]

Можно реализовать вообще без рекурсии, см. например https://medium.com/@dimko1/%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B-%D1%81%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8-heapsort-796ba965018b