版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
4-7最優(yōu)二叉樹v第四章樹和二叉樹哈夫曼算法學(xué)什么?哈夫曼編碼最優(yōu)二叉樹(哈夫曼樹)的基本概念最優(yōu)二叉樹葉子結(jié)點(diǎn)的權(quán)值:對(duì)葉子結(jié)點(diǎn)賦予的一個(gè)有意義的數(shù)值量二叉樹的帶權(quán)路徑長(zhǎng)度:從根結(jié)點(diǎn)到各個(gè)葉子結(jié)點(diǎn)的路徑長(zhǎng)度與相應(yīng)葉子結(jié)點(diǎn)權(quán)值的乘積之和取決于具體問題第k個(gè)葉子的權(quán)值從根結(jié)點(diǎn)到第k個(gè)葉子的路徑長(zhǎng)度最優(yōu)二叉樹(哈夫曼樹):給定一組具有確定權(quán)值的葉子結(jié)點(diǎn),帶權(quán)路徑長(zhǎng)度最小的二叉樹323428324552345432最優(yōu)二叉樹最優(yōu)二叉樹有什么特點(diǎn)?(1)權(quán)值越大的葉子結(jié)點(diǎn)越靠近根結(jié)點(diǎn)(2)只有度為0和度為2的結(jié)點(diǎn),不存在度為1的結(jié)點(diǎn)4-7-1哈夫曼算法v第四章樹和二叉樹哈夫曼算法【問題】給定一組權(quán)值,構(gòu)造最優(yōu)二叉樹1.初始化:由n個(gè)權(quán)值構(gòu)造n棵只有一個(gè)根結(jié)點(diǎn)的二叉樹,得到一個(gè)二叉樹集合F={T1,T2,…,Tn};2.重復(fù)下述操作,直到集合F中只剩下一棵二叉樹
2.1選取與合并:在F中選取根結(jié)點(diǎn)的權(quán)值最小的兩棵二叉樹分別作為左右子樹構(gòu)造一棵新的二叉樹,這棵新二叉樹的根結(jié)點(diǎn)的權(quán)值為其左右子樹根結(jié)點(diǎn)的權(quán)值之和;
2.2刪除與加入:在F中刪除作為左右子樹的兩棵二叉樹,并將新建立的二叉樹加入到F中;【想法——哈夫曼算法的基本思想】例給定權(quán)值集合{2,4,5,3}初始化選取與合并刪除與加入245323
54523
5運(yùn)行實(shí)例23
545
923
545
914【算法——數(shù)據(jù)表示】如何存儲(chǔ)哈夫曼樹呢?23
545
914采用數(shù)組還是鏈表呢?
n
個(gè)葉子結(jié)點(diǎn)合并
n-1次n-1個(gè)分支結(jié)點(diǎn)哈夫曼樹共有2n-1個(gè)結(jié)點(diǎn)設(shè)數(shù)組huffTree[2n-1]須存儲(chǔ)哪些關(guān)系呢?選取根結(jié)點(diǎn)權(quán)值最小的二叉樹存儲(chǔ)parent信息作為左右子樹進(jìn)行合并存儲(chǔ)lchild和rchild信息weightlchildrchildparent哈夫曼算法23
545
914weightlchildrchildparentstructElemType{
intweight;/*假定權(quán)值為整數(shù)*/
intparent,lchild,rchild;};函數(shù)原型:voidHuffmanTree(ElemTypehuffTree[],intw[],intn)哈夫曼算法【算法——數(shù)據(jù)表示】如何存儲(chǔ)哈夫曼樹呢?【算法——數(shù)據(jù)處理過程】-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1例給定權(quán)值集合{2,4,5,3}24530123456weightparentlchildrchildfor(i=0;i<2*n-1;i++){huffTree[i].parent=-1;huffTree[i].lchild=-1;huffTree[i].rchild=-1;}算法描述:哈夫曼算法-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-124530123456weightparentlchildrchildfor(i=0;i<n;i++)huffTree[i].weight=w[i];算法描述:例給定權(quán)值集合{2,4,5,3}哈夫曼算法【算法——數(shù)據(jù)處理過程】2453-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-124530123456weightparentlchildrchild4523
5i1i25huffTree[k].weight=huffTree[i1].weight+huffTree[i2].weight;算法描述:k例給定權(quán)值集合{2,4,5,3}哈夫曼算法【算法——數(shù)據(jù)處理過程】2453-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1245324530123456weightparentlchildrchild4523
5i1i250344huffTree[i1].parent=k;huffTree[i2].parent=k;huffTree[k].lchild=i1;huffTree[k].rchild=i2;算法描述:k例給定權(quán)值集合{2,4,5,3}哈夫曼算法【算法——數(shù)據(jù)處理過程】【程序】voidHuffmanTree(ElemTypehuffTree[],intw[],intn){inti,k,i1,i2;
}for(i=0;i<2*n-1;i++)/*初始化,所有結(jié)點(diǎn)均沒有雙親和孩子*/{huffTree[i].parent=-1;huffTree[i].lchild=-1;huffTree[i].rchild=-1;}for(k=n;k<2*n-1;k++)/*n-1次合并*/{
Select(huffTree,i1,i2);/*權(quán)值最小的兩個(gè)根結(jié)點(diǎn)下標(biāo)為i1和i2*/huffTree[k].weight=huffTree[i1].weight+huffTree[i2].weight;huffTree[i1].parent=k;huffTree[i2].parent=k;huffTree[k].lchild=i1;huffTree[k].rchild=i2;}for(i=0;i<n;i++)/*構(gòu)造n棵只含有根結(jié)點(diǎn)的二叉樹*/huffTree[i].weight=w[i];算法實(shí)現(xiàn)4-7-2哈夫曼編碼v第四章樹和二叉樹編碼編碼:給每一個(gè)對(duì)象標(biāo)記一個(gè)二進(jìn)制位串來表示一組對(duì)象等長(zhǎng)編碼:用長(zhǎng)度相等的二進(jìn)制位串表示一組對(duì)象酸甜
01酸甜苦辣00011011酸
甜苦辣
咸麻000
001
010
011
100101編碼的目的是什么?數(shù)字化編碼效率取決于編碼長(zhǎng)度如果每個(gè)對(duì)象的使用頻率不等,如何獲得較高的編碼效率市區(qū)出生日期順序校驗(yàn)身份證號(hào)碼不等長(zhǎng)編碼:表示一組對(duì)象的二進(jìn)制位串的長(zhǎng)度不相等設(shè)計(jì)不等長(zhǎng)編碼時(shí),必須考慮解碼的唯一性
字符串:AABACD
編碼:00100110ABCDE
一組對(duì)象3525151510
使用頻率01011011
不等長(zhǎng)編碼前綴(無歧義)編碼保證了在解碼時(shí)不會(huì)有多種可能前綴無歧義編碼(簡(jiǎn)稱前綴編碼):在一組編碼中,任一編碼都不是其它任何編碼的前綴解碼
00100110
00100110
解碼:哈夫曼編碼如何設(shè)計(jì)一個(gè)編碼效率最高的前綴編碼呢?哈夫曼編碼例一組字符{A,B,C,D,E,F,G}出現(xiàn)的頻率分別是{9,11,5,7,8,2,3},設(shè)計(jì)最經(jīng)濟(jì)的編碼方案。00000011111195231187ABDCEFG哈夫曼編碼方案:A:00B:10C:010D:110E:111F:0110G:011151510261945等長(zhǎng)編碼的長(zhǎng)度:3哈夫曼編碼的平均長(zhǎng)度:(2×9+3×5+4×2+4×3+2×11+3×7+3×8)/45=2.67該編碼方案的壓縮比是多少?(3-2.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 文庫發(fā)布:彩超課件
- 2026屆福建省福州市平潭翰英中學(xué)高三上學(xué)期期中考試歷史試題(含答案)
- 2025年博思睿人力招聘(派遣至海寧市袁花鎮(zhèn)百溪工業(yè)社區(qū))備考題庫及參考答案詳解1套
- 景區(qū)講解員招聘面試題及答案
- 福建理工大學(xué)《形勢(shì)與政策》2023-2024學(xué)年第一學(xué)期期末試卷
- 菏澤職業(yè)學(xué)院《中國(guó)近代史綱要》2023-2024學(xué)年第一學(xué)期期末試卷
- 4.2《憐憫是人的天性》教學(xué)課件2025-2026學(xué)年統(tǒng)編版高中語文選擇性必修中冊(cè)
- 2025年杭州市公安局濱江區(qū)分局招聘警務(wù)輔助人員備考題庫有答案詳解
- 2025年西藏革吉縣財(cái)政局招聘財(cái)會(huì)監(jiān)督人員的備考題庫完整參考答案詳解
- 2025年主管護(hù)師(護(hù)理學(xué))高頻考題 200 題及答案
- 穿越機(jī)入門教學(xué)課件
- 《二次根式的混合運(yùn)算》教學(xué)設(shè)計(jì)
- 地質(zhì)災(zāi)害危險(xiǎn)性評(píng)估方案報(bào)告
- 感術(shù)行動(dòng)培訓(xùn)課件
- DB44∕T 2552-2024 藥物臨床試驗(yàn)倫理審查規(guī)范
- 血管外科第三集講解
- 跨區(qū)域文化協(xié)作-洞察及研究
- 2025 易凱資本中國(guó)健康產(chǎn)業(yè)白皮書 -生物制造篇(與茅臺(tái)基金聯(lián)合發(fā)布)
- 產(chǎn)業(yè)經(jīng)濟(jì)學(xué)(蘇東坡版)課后習(xí)題及答案
- T/CECS 10227-2022綠色建材評(píng)價(jià)屋面綠化材料
- 區(qū)域醫(yī)學(xué)檢驗(yàn)中心項(xiàng)目建設(shè)方案
評(píng)論
0/150
提交評(píng)論