算法導(dǎo)論-排序和順序統(tǒng)計量-堆排序(缺代碼)

堆排序

(二叉)堆是一個數(shù)組,它可以被看成一個近似的完全二叉樹。樹上的每一個結(jié)點對應(yīng)數(shù)組中的一個元素。除了最底層外,該樹是完全充滿的,而且是從左像右填充。

在堆排序中,我們使用的是最大堆。最小堆通常用于構(gòu)造優(yōu)先隊列。

在最大堆中,最大堆性質(zhì)是指除了根以外的所有結(jié)點i都要滿足:A[Panrent(i)]≥a[i],也就是說,某個結(jié)點的值至多與其父結(jié)點一樣大。堆中的最大元素存放在根結(jié)點中。

把堆看成一棵樹,一個堆中的結(jié)點的高度就為該結(jié)點到葉結(jié)點最長簡單路徑上邊的數(shù)目。

優(yōu)先隊列是一種用來維護一組元素構(gòu)成的集合S的數(shù)據(jù)結(jié)構(gòu),其中的每一個元素都有一個相關(guān)的值,稱為關(guān)鍵字(key)。一個最大優(yōu)先隊列支持以下操作:
Insert(S,x):把元素x插入集合S中。這一操作等價于S=S∪{x}。
Maximum(S):返回S中具有最大鍵字的元素。
Extract-Max(S):去掉并返回S中的具有最大鍵字的元素。
Increase-Key(S,x,k):將元素x的關(guān)鍵字值增加到k,k的值不小于x的原關(guān)鍵字。

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

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

  • 0.目錄 1.優(yōu)先隊列ADT 2.幾種實現(xiàn) 3.二叉堆 4.d-堆 5.左式堆 6.斜堆 7.二項隊列 8.斐波那...
    王偵閱讀 3,399評論 1 2
  • 課程介紹 先修課:概率統(tǒng)計,程序設(shè)計實習(xí),集合論與圖論 后續(xù)課:算法分析與設(shè)計,編譯原理,操作系統(tǒng),數(shù)據(jù)庫概論,人...
    ShellyWhen閱讀 2,460評論 0 3
  • 本文涉及更多的是概念,代碼部分請參考之前寫過的 2 篇博客 基于Javascript的排序算法基本數(shù)據(jù)結(jié)構(gòu)和查找算...
    faremax閱讀 1,412評論 0 2
  • 概述:排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    每天刷兩次牙閱讀 3,819評論 0 15
  • 人生最愜意 141的后座 打開窗 環(huán)陵路的風(fēng) 閉上眼睛 拂面而來
    小暖之旅閱讀 205評論 0 0

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