我以前一直在想, 这个所谓的压缩算法, 也就是缩减数据的比特位, 究竟是怎么实现的呢?
有一天我想明白了, 这个所谓的"压缩", 也并不是完全压缩, 而是压缩数据中出现频率高的部分. 而出现频率比较低的部分, 则可能不压缩甚至导致"逆压缩" (数据比特位增多).
将某段数据以字节为单位计算出出现的频率, 然后用二叉树将数据重新编码, 这样每个字节就有了独一无二的新编码: 出现频率第一的字节的新编码就只有1个字, 出现频率第二的字节的编码就有2个字... 以此类推, 我们就完成了一个最基本的压缩算法.