赫夫曼编码代码分析版
关于赫夫曼编码的探究
常规思路
原理:
对一系列的权值进行升序排列,接着取两个最小值。依次循环,直至遍历所有值。
例子:对 2 3 5 7 6 9 8进行赫夫曼编码。正常情况下的算法分析如下。
1.首先进行排序,然后取最小的两个值。
排序前 | 排序后 |
---|---|
2 3 5 7 6 9 8 | 2 3 5 6 7 8 9 |
2.筛选最小的两个数并相加,放回序列后重新排序取最小的两个值
排序前 | 最小两值 | 排序后 |
---|---|---|
2 3 | 5 5 6 7 8 9 |
3.重复第二步结果如下
排序前 | 最小两值 | 排序后 |
---|---|---|
5 5 | 6 7 8 9 10 | |
6 7 | 8 9 10 13 | |
8 9 | 10 13 17 | |
10 13 | 17 23 | |
17 23 | 40 |
4.算法分析结束
5生成的赫夫曼树如下