数据结构和算法-huffman coding

本文介绍了哈夫曼编码,一种数据压缩算法,通过构建赫夫曼树实现变长编码,有效减少文本文件的存储空间。通过示例展示了如何进行编码,并指出哈夫曼编码在解决二义性问题上的重要性,以及其在数据压缩中的高效性。
摘要由CSDN通过智能技术生成

感谢尚硅谷韩顺平老师深入细致的讲解

哈夫曼编码(Huffman Coding),是一种编码方式, 属于一种程序算法。Huffman于1952年提出一种编码方法,称之为最佳编码。哈夫曼编码是哈夫曼树在电讯通信中的经典的应用之一。
哈夫曼编码广泛地用于数据文件压缩。其压缩率通常在20%~90%之间。哈夫曼码是可变字长编码(VLC)的一种,非常适合有大量重复数据的文本文件的压缩。

定长编码:

i like like like java do you like a java // 共40个字符(包括空格)
对应Ascii码
105 32 108 105 107 101 32 108 105 107 101 32 108 105 107 101 32 106 97 118 97 32 100 111 32 121 111 117 32 108 105 107 101 32 97 32 106 97 118 97
对应的二进制
01101001 00100000 01101100 01101001 01101011 01100101 00100000 01101100 01101001 01101011 01100101 00100000 01101100 01101001 01101011 01100101 00100000 01101010 01100001 01110110 01100001 00100000 01100100 01101111 00100000 01111001 01101111 01110101 00100000 01101100 01101001 01101011 01100101 00100000 01100001 00100000 01101010 01100001 01110110 01100001
按照二进制来传递信息,总的长度是 359 (包括空格)。

变长编码:

i like like

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值