实验报告
课程名称 《算法分析与设计》
实验名称 最优前缀编码
1.问题
[描述算法问题,首选形式化方式(数学语言),其次才是非形式化方式(日常语言)]
给定字符集C和每个字符的频率f(xi),求关于C的一个最优前缀码。
构造最优前缀的贪心算法,即哈夫曼算法
2.解析
[问题的理解和推导,可用电子版直接在此编写,也可用纸笔推导,拍照嵌入本文档]
对于集合中的数,每次维护所有数字的最小两个值,取最小的两个值形成序列,把这两个值的和累加到结果上,那么结果就是WPL
3.设计
设集合C1存储所有元素,C2存储结果
while(集合C1中的元素不为一){
取出集合中的第一个数a
取出集合中的第二个数b
将数a、b放到集合C2中
设res为数a+b
将res放入到集合C1中
}
4.分析
[算法复杂度推导]
O(nlogn)频率排序;
for 循环 O(n),插入操作 O(logn),
算法时间复杂度是 O(nlogn)