2014-12-31 21 views
0

我想在不使用堆數據結構的情況下實現heapsort。更確切地說,我希望在原始數組上完成所有更改。我試圖實現它,但我陷入了困境,因爲它變成了另一種算法,例如選擇排序或冒泡排序。那麼,如果我們不使用堆數據結構,那麼會被稱爲heapsort?實現heapsort而不使用單獨的堆數據結構

+0

原地是[heapsort](http://en.wikipedia.org/wiki/Heapsort)的標準。一旦你的實現感到滿意,試着理解[smoothsort](http://en.wikipedia.org/wiki/Smoothsort)。 – greybeard

+0

(您可能希望改變標題的方向......而不使用單獨的堆數據結構) – greybeard

+0

mhm感謝您的更正和答案 – user2735714

回答

0

關於堆的令人興奮的事情是它可以簡單地實現爲數組中的項的排列 - 它不需要單獨的數據結構和元素間的指針。 Greybeard將你引向維基百科頁面,對此有非常好的處理,但簡而言之,這個想法是通過交換元素來構建堆棧,然後通過交換相同陣列中的元素進行排序。