算法設(shè)計與分析6堆排序_第1頁
算法設(shè)計與分析6堆排序_第2頁
算法設(shè)計與分析6堆排序_第3頁
算法設(shè)計與分析6堆排序_第4頁
算法設(shè)計與分析6堆排序_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、算法設(shè)計與分析2007.91第五章 堆排序堆的基本概念和性質(zhì)堆的基本操作(過程及分析)堆排序算法(過程及分析)堆排序應(yīng)用優(yōu)先級隊列(過程及分析)程序展示和講解2一、堆的基本概念和性質(zhì)1、定義: 堆可看作為一完全二叉樹,大根堆的任一 非終端節(jié)點(葉子節(jié)點) 的數(shù)據(jù)不小于其子節(jié)點的數(shù)據(jù)。2、兩個特點: 根節(jié)點上為該堆的最大元素。 較大的數(shù)據(jù)位于較低的層次。3堆的屬性1、 lengthA:數(shù)組中的元素個數(shù)2、heapsizeA:存放在A中的堆的元素個數(shù) 顯然heapsizeA lengthA3、給定一個節(jié)點的下標i,其父節(jié)點為 i/2 ,其左兒子LEFT(i)為2i、右兒子 RIGHT(i)為2i+

2、1.4五個基本過程1、HEAPIFY過程:維持堆性質(zhì),運行時間O(lgn).2、BUILD-HEAP過程:從無序的輸入數(shù)組中構(gòu)造出一個堆來,運行時間O(n). 3、HEAPSORT過程:對一個數(shù)組進行排序,運行時間O(nlgn). 4、EXTRACT-MAX和INSERT過程:是堆結(jié)構(gòu)可以作為一個優(yōu)先級隊列來用,運行時間O(lgn). 5堆實例6二、堆的基本操作HEAPIFY過程1、過程說明:對于第i個數(shù),假定以它左兒子LEFT(i)和右兒子 RIGHT(i)為根的兩棵子樹都已為堆,調(diào)用HEAPIFY使得以i為根的子樹成為一個的堆。2、過程圖例783、算法如下1、lLEFT(i)2、rRIGH

3、T(i)3、if lheapsize(A)andAlAi4、 then largestl5、 else largesti6、if rheapsize(A) andArAlargest7、 then largestr8、if largesti9、 then exchange AiAlargest10、 HEAPIFY(A,largest)94、運行時間 T(n)=T(2/3n)+(1) 可得T(n)=O(lgn) 因為堆的高度最大為lgn 所以可知T(n)= O(lgn)10BUILD-HEAP過程1、圖例2、 BUILD-HEAP(A)算法 1) heapsizeAlengthA 2) for

4、 i lengthA/2 downto 1 3) do HEAPIFY(A,i)3、運行時間 111213粗估: 每調(diào)一次HEAPIFY(A,i)的時間為O(lgn),總共有O(n)次調(diào)用,故運行時間最多為O(nlgn).此時間是不緊確的。緊確估計:含n個元素的堆中至多有 個節(jié)點的高度為h1415三、堆排序算法1、圖例:2、算法1) BUILDHEAP(A)2) for ilengthA downto 23) do exchange A1Ai4) heapsize(A)heapsize(A)-15) HEAPIFY(A,1)3、運行時間16171819堆排序的時間建堆的時間為O(n)+(n-1

5、)次的HEAPIFY調(diào)用時間 O(lgn),所以總的代價為O(nlgn)20四、優(yōu)先級隊列一、常見操作1、INSERT(S,x):把元素x插入集合S. 可記為SSx.2、MAXIMUM(S):返回S中具有最大關(guān)鍵字的元素。3、EXTRACTMAX(S):去掉并返回S中具有最大關(guān)鍵字的元素。21HEAP-EXTRACT-MAX過程HEAPEXTRACTMAX(A)if heapsize A1 and APARENT(i)key 4、 do AiAPARENT(i) 5、 iPARENT(i) 6、 Aikey3、運行時間: O(lgn)2425第五章 堆排序概念:二叉樹、完全二叉樹、根、葉節(jié)點、

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論