赫夫曼编码原理
假设两台计算机之间需要传输一串字符串:i like like like java do you like a java
1.统计个字符出现的次数:d:1 y:1 u:1 j:2 v:2 o:2 l:4 k:4 e:4 i:5 a:5 空格:9
2.按照上面字符出现的次数创建一个赫夫曼树,次数作为权值:
3. 然后根据赫夫曼树,给各个字符规定编码,向左的路径为0,向右的编码为1,编码如下:
空格 | l | j | v | i | o | u | d | y | a | k | e |
01 | 001 | 0000 | 0001 | 101 | 1000 | 10010 | 100110 | 100111 | 110 | 1110 | 1111 |
该编码是前置编码:字符集中任一字符的编码都不是其它字符的编码的前缀。
4.按照上面的赫夫曼编码,字符串“i like like like java do you like a jav