利用哈弗曼编码

1,课本教材习题5.18.

a,根据字母及空格出现的频率,可构造哈夫曼树,

(1)根据字母及空格出现的频率,可构造哈夫曼树,如下图:


利用哈弗曼编码_第1张图片


利用哈夫曼编码定义,可得出哈夫曼编码为:

z:1111011000

q:1111011001

x:1111011010

j: 1111011011

k:11110111

v:1111010

b:100100

p:100101

y:111100

g:101100

f:101101

w:111110

m:111111

u:01000

c:01001

l:10011

d:10111

r:0000

h:0001

s:0101

n:0110

i:0111

o:1000

a:1010

t:1110

e:001

空格:110


b,根据哈夫曼树可得出每个字母编码平均需要的位数为:(10*4+8+7+6*7+5*4+4*8+3*2)/27=5.7407

c,我认为熵的值比以上计算结果要大,因为每一个字母编码实际中是整数,而以上计算为小数,如果舍去小数部分,只取整数部分就偏小了,故应该偏大才行。

d,我不认为这就是英文文本压缩的下限,因为英文文本的复杂度还远远地比这个深,除了字母及其出现频率,还有英文词组,字母的前缀和后缀应该被考虑到的。

你可能感兴趣的:(算法概论,利用哈弗曼编码——英文字母表)