日常突发奇想001——赫夫曼(哈夫曼/霍夫曼)编码

今天数据结构课的上课内容

Huffman编码

最开始是打算计算最优编码的长度来着,发现26字母出现次数均为一次的时候,等长编码会占十分巨大的优势,并且Huffman编码还得运行两次文本,会比等长编码慢很多。

Huffman编码和等长编码都没有抗干扰能力,这里就不对比这个了。

突发奇想的想要测试什么情况下Huffman编码能比等长编码有优势,这时候想到了吴克群的歌(真的是暴露年龄)

虽然歌词真的很直白,我是喜欢不起来的,但是这种重复程度,我设想能体现出Huffman编码的优势了吧?

然而…

(下面是字数统计)

说 15

你 3

爱 3

我 12

不 3

出 2

口 10

声 4

的 2

对 1

起 1

有 1

大 2

舌 2

头 2

就 1

Huffman编码:15*1+12*2+10*3+4*4+3*5+3*6+3*7+2*8+2*9+2*10+2*11+2*12+13+14+15+15=296(296位01代码表示此歌词)

等长编码:

5*7*8=280(16个字用五位二进制数表示,七字一句歌词共八句)

……这时候我陷入了沉思,看样子估计是低频出现的字太多了,算前三句好了(「・ω・)「

(再次统计)

说 7

你 1

爱 1

我 5

不 1

出 1

口 5

声 2

的 5

Huffman编码:

7*1+5*2+5*3+2*4+5+6+7+8+8=74

等长编码:

4*7*3=84(同上不解释)

终于……男默女泪(´-ι_-`)

这丫不仅慢要求还挺高我觉得真的蛮弱鸡的…

仅个人观点嗷,有时间想试试计算重复比例占多少,低频字符占多少Huffman编码能比等长编码短,嗯我没事找事。

猜你喜欢

转载自www.cnblogs.com/jun-ruo-sui-nian/p/qsmx_001.html