章節連結
從網路課程 程式必修課!離散數學與演算法 來淺嚐一下沒機會在課堂上所學的離散數學與演算法。或許對撰寫程式的效能提昇會有些幫助。
課程相關資訊
[連結]:https://hiskio.com/courses/1196/lectures/133851
本篇範圍:Chapter 10
請注意:本系列文章為個人對應課程的消化吸收後,所整理出來的內容。換言之,並不一定會包含全部的課程內容,也有可能會添加其他資源來說明。
內容
Hoffman Encoding
壓縮兩步驟
- 統計頻率: 掃描整份文件,計算每個字元(如 A, B, C)的出現次數。
- 建立決策樹: 從最少出現的字元開始,兩兩配對合併,像樹枝一樣不斷向上生長,直到所有字元都被包含在一棵大樹裡。
結果
在這棵樹上,最常出現的字元(如 A
),會被分配到最短的路徑(例如編碼 01
);最少見的字(如 Z
),路徑就會最長(例如 110101
)。
最終,整份文件的總長度就被大大縮短了。解壓縮時,電腦只要拿著同一棵「決策樹」,就能準確地將 01110101...
還原成原始文字!
系列文章
按讚加入粉絲團