如何以内存有效格式将哈希图写入文件?
How to write a hashmap to a file in a memory efficient format?
我正在编写霍夫曼 Coding/Decoding 算法,我 运行 遇到存储霍夫曼树占用大量空间的问题。目前,我正在将树转换为这样的 hashMap -> hashMap 然后存储该哈希映射。问题是,虽然字符串压缩得很好,但添加存储在哈希映射中的霍夫曼树数据会增加太多开销,以至于它实际上最终会比原来的更大。目前我只是天真地将 [data, value] 对写入文件,但我想一定有某种更棘手的方法可以做到这一点。有什么想法吗?
您不需要树来进行编码。您所需要的只是每个符号的位长度和一种对符号进行排序的方法。参见 Canonical Huffman Code。
其实你只需要按位长编码的符号,位长内按符号排序,然后每个长度编码的个个即可。只需这两件事,您就可以编码。
我正在编写霍夫曼 Coding/Decoding 算法,我 运行 遇到存储霍夫曼树占用大量空间的问题。目前,我正在将树转换为这样的 hashMap -> hashMap
您不需要树来进行编码。您所需要的只是每个符号的位长度和一种对符号进行排序的方法。参见 Canonical Huffman Code。
其实你只需要按位长编码的符号,位长内按符号排序,然后每个长度编码的个个即可。只需这两件事,您就可以编码。