电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

三进制霍夫曼编码

三进制霍夫曼编码_第1页
1/9
三进制霍夫曼编码_第2页
2/9
三进制霍夫曼编码_第3页
3/9
题目:将霍夫曼编码推广至三进制编码,并证明它能产生最优编码。 ※将霍夫曼编码推广至三进制编码 设一个数据文件包含Q 个字符:A1,A2,……,Aq,每个字符出现的频度对应为 P:P1,P2,……,Pq。 1.将字符按频度从大到小顺序排列,记此时的排列为排列 1。 2.用一个新的符号(设为 S1)代替排列 1 中频度值最小的 Q-2k(k 为(Q-1)/2 取整)个字符,并记其频度值为排列 1 中最小的 Q-2k 个频度值相加,再重新按频度从大到小顺序排列字符,记为排列 2。(注:若 Q-2k=0,则取其值为 2,若 Q-2k=1,则取其值为 3.) 3.对排列 2 重复上述步骤 2,直至最后剩下 3 个概率值。 4.从最后一个排列开始编码,根据3 个概率大小,分别赋予与 3 个字符对应的值:0、1、2,如此得到最后一个排列 3 个频度的一位编码。 5.此时的 3 个频度中有一个频度是由前一个排列的 3 个相加而来,这 3 个频度就取它的一位编码后面再延长一位编码,得到二位编码,其它不变。 6.如此一直往前,直到排列 1 所有的频度值都被编码为止。 举例说明如下(假设Q=9): 字符 A1 A2 A3 A4 A5 A6 A7 A8 A9 频度 0.22 0.18 0.15 0.13 0.10 0.07 0.07 0.05 0.03 字符 频度 编码 频度 编码 频度 编码 频度 编码 A1 0.22 2 0.22 2 0.30 1 0.48 0 A2 0.18 00 0.18 00 0.22 2 0.30 1 A3 0.15 02 0.15 01 0.18 00 0.22 2 A4 0.13 10 0.15 02 0.15 01 A5 0.10 11 0.13 10 0.15 02 A6 0.07 12 0.10 11 A7 0.07 010 0.07 12 A8 0.05 011 A9 0.03 012 频度中的黑体为前一频度列表中斜体频度相加而得。编码后字符A1~A9 的码字依次为:2,00,02,10,11,12,010,011,012。 构造三进制霍夫曼编码伪码程序如下: HUFFMAN(C) 1 n ← ∣C ∣ 2 Q ← C 3 for i ← 1 to n-1 4 do allocate a new node s 5 left[s] ← x ← EXTRACT-MIN(Q) 6 middle[s] ← y ← EXTRACT-MIN(Q) 7 right[s] ← z ← EXTRACT-MIN(Q) 8 f[s] ← f[x]+f[y]+f[z] 9 INSERT(Q,z) 10 retu rn EXTRACT-MIN(Q) ※霍夫曼编码(三进制)最优性证明 在二进制霍夫曼编码中,文件的最优编码由一棵满二叉树表示,树中每个非叶子结点都有两个子结点。在此与之相对应,构造一棵满三叉树来表示三进制的霍夫曼编码,树中每个非叶子结点都有三个子结点。...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

三进制霍夫曼编码

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部