堆排序

思路:

????????1、把無(wú)序數(shù)組構(gòu)建成最大二叉堆

????????2、循環(huán)刪除堆頂元素,移到集合尾部,調(diào)節(jié)堆產(chǎn)生新的堆頂

當(dāng)我們刪除一個(gè)最大堆的堆頂(并不是完全刪除,而是替換到最后面),經(jīng)過(guò)自我調(diào)節(jié),第二大的元素就會(huì)被交換上來(lái),成為最大堆的新堆頂。

正如上圖所示,當(dāng)我們刪除值為10的堆頂節(jié)點(diǎn),經(jīng)過(guò)調(diào)節(jié),值為9的新節(jié)點(diǎn)就會(huì)頂替上來(lái);當(dāng)我們刪除值為9的堆頂節(jié)點(diǎn),經(jīng)過(guò)調(diào)節(jié),值為8的新節(jié)點(diǎn)就會(huì)頂替上來(lái).......

由于二叉堆的這個(gè)特性,我們每一次刪除舊堆頂,調(diào)整后的新堆頂都是大小僅次于舊堆頂?shù)墓?jié)點(diǎn)。那么我們只要反復(fù)刪除堆頂,反復(fù)調(diào)節(jié)二叉堆,所得到的集合就成為了一個(gè)有序集合,

code
run
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 堆排序可以做什么 首先應(yīng)該弄清楚堆排序可以解決什么問(wèn)題,答案是顯而易見(jiàn)的:排序。說(shuō)得通俗點(diǎn)兒就是對(duì)一組無(wú)序的數(shù)字進(jìn)...
    Springlord888閱讀 30,617評(píng)論 11 52
  • 堆是一棵滿(mǎn)足一定性質(zhì)的二叉樹(shù),具體的講堆具有如下性質(zhì):父節(jié)點(diǎn)的鍵值總是不大于它的孩子節(jié)點(diǎn)的鍵值(小頂堆), 堆可以...
    9527Roy閱讀 751評(píng)論 0 0
  • 原文鏈接 堆排序可以做什么 首先應(yīng)該弄清楚堆排序可以解決什么問(wèn)題,答案是顯而易見(jiàn)的:排序。說(shuō)得通俗點(diǎn)兒就是對(duì)一組無(wú)...
    只為此心無(wú)垠閱讀 652評(píng)論 0 0
  • 堆排序和快速排序一樣也是一個(gè)O(n logn)的排序算法 但是二者是不一樣的實(shí)現(xiàn)原理 [這是肯定的,不要pia我]...
    阿飛不理飛閱讀 831評(píng)論 0 0
  • 相傳,程邈是做秦朝的縣獄吏(負(fù)責(zé)文書(shū)一類(lèi)的差事)的工作的,相當(dāng)于如今的秘書(shū)。他個(gè)性耿直,因此得罪了皇帝,被皇帝關(guān)進(jìn)...
    青梅竹酒閱讀 333評(píng)論 0 3

友情鏈接更多精彩內(nèi)容