赫夫曼编码
赫夫曼编码用于数据文件的压缩,压缩率在20%~90%之间,称之为最佳编码 将原始数据转换为ASCII编码后再转二进制属于定长编码 同样数据使用变长编码,按照各个字符出现次数进行编码,出现次数越多则编码越小(字符的编码都不能是其他字符编码的前缀,这样的编码叫做前缀编码),从而实现数据的压缩 步骤:和创建赫夫曼树一样,其数据重复出现的次数作为权值,向左的路径为0,向右的路径为1,采取不一样的排序方式,编码也是不一样的,但是最后WPL是相同的,都是最小 理论上来说赫夫曼编码的压缩率重复数据出现的越多压缩率则越高,相反次之 import java.io.*; import java.util.*; public class HuffmanCode { public static void main(String[] args) { String content = "i like like like java do you like a java"; byte[] contentBytes = content.getBytes(); byte[] huffmanCodesBytes = huffmanZip(contentBytes); // System.out.println(Arrays.toString(huffmanCodesBytes) + " " +