数据结构之外部排序:最佳归并树
外部排序:最佳歸并樹(shù)
- 思維導(dǎo)圖:
- 歸并樹(shù)的定義:
- 例:
- 最佳歸并樹(shù)(本質(zhì)是一顆哈夫曼樹(shù)):
- 所有的初始?xì)w并段一定能構(gòu)造出一顆完美的哈夫曼樹(shù)嗎?
- 怎么選擇補(bǔ)充虛短的個(gè)數(shù)?
思維導(dǎo)圖:
歸并樹(shù)的定義:
例:
另一種理解方式:
1、每個(gè)數(shù)字代表了一個(gè)歸并段的長(zhǎng)度
2、121就代表了總的數(shù)據(jù)元素的個(gè)數(shù)
3、樹(shù)的深度代表了讀或?qū)?/strong>的次數(shù)
4、總的IO的讀寫(xiě)次數(shù)=(讀+寫(xiě))?元素個(gè)數(shù) = (2+2)×121=484
但是這個(gè)只是一顆普通的二叉樹(shù),由上圖可知,想要IO讀寫(xiě)次數(shù)最少,就要帶權(quán)路徑長(zhǎng)度最優(yōu),帶權(quán)路徑長(zhǎng)度最優(yōu)時(shí)為哈夫曼樹(shù)
最佳歸并樹(shù)(本質(zhì)是一顆哈夫曼樹(shù)):
當(dāng)歸并樹(shù)為哈夫曼樹(shù)時(shí),IO次數(shù)最小
所有的初始?xì)w并段一定能構(gòu)造出一顆完美的哈夫曼樹(shù)嗎?
答:不是
我們稱(chēng)這種初始?xì)w并段不夠而補(bǔ)充的段稱(chēng)為虛短
怎么選擇補(bǔ)充虛短的個(gè)數(shù)?
總的節(jié)點(diǎn)個(gè)數(shù) = 孩子節(jié)點(diǎn)總數(shù)+根節(jié)點(diǎn),即:
度為0的節(jié)點(diǎn)+度為m的節(jié)點(diǎn) = 孩子節(jié)點(diǎn)總數(shù)+根節(jié)點(diǎn),即:
n0 + nm = m * nm + 1,即:
n0 = (m-1)nm + 1
總結(jié)
以上是生活随笔為你收集整理的数据结构之外部排序:最佳归并树的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C++用法的学习心得
- 下一篇: unix cheatsheet