数据结构之外部排序:最佳归并树
生活随笔
收集整理的這篇文章主要介紹了
数据结构之外部排序:最佳归并树
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
外部排序:最佳歸并樹
- 思維導圖:
- 歸并樹的定義:
- 例:
- 最佳歸并樹(本質是一顆哈夫曼樹):
- 所有的初始歸并段一定能構造出一顆完美的哈夫曼樹嗎?
- 怎么選擇補充虛短的個數?
思維導圖:
歸并樹的定義:
例:
另一種理解方式:
1、每個數字代表了一個歸并段的長度
2、121就代表了總的數據元素的個數
3、樹的深度代表了讀或寫的次數
4、總的IO的讀寫次數=(讀+寫)?元素個數 = (2+2)×121=484
但是這個只是一顆普通的二叉樹,由上圖可知,想要IO讀寫次數最少,就要帶權路徑長度最優,帶權路徑長度最優時為哈夫曼樹
最佳歸并樹(本質是一顆哈夫曼樹):
當歸并樹為哈夫曼樹時,IO次數最小
所有的初始歸并段一定能構造出一顆完美的哈夫曼樹嗎?
答:不是
我們稱這種初始歸并段不夠而補充的段稱為虛短
怎么選擇補充虛短的個數?
總的節點個數 = 孩子節點總數+根節點,即:
度為0的節點+度為m的節點 = 孩子節點總數+根節點,即:
n0 + nm = m * nm + 1,即:
n0 = (m-1)nm + 1
總結
以上是生活随笔為你收集整理的数据结构之外部排序:最佳归并树的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++用法的学习心得
- 下一篇: unix cheatsheet