我有一個二進制文件,我知道其中每個符號的出現次數。我需要預測壓縮文件的長度,如果我使用霍夫曼算法對它進行壓縮。我只對假設的輸出長度感興趣,而不是對單個符號的代碼感興趣,因此構建霍夫曼樹似乎是多餘的。
作爲一個例子,我需要得到像
「38位的二進制字符串,其中包含4個a,5個b和10個c可以壓縮到28位」,除了文件和字母大小都大得多。預測Huffman壓縮比率而不構建樹
基本問題是:它可以在沒有構建樹的情況下完成嗎?
望着貪心算法:http://www.siggraph.org/education/materials/HyperGraph/video/mpeg/mpegfaq/huffman_tutorial.html
好像樹可以的n * log(n)時間,其中n是在文件中不同符號的數量來構建。這漸近地不壞,但需要樹節點的內存分配,並做了很多工作,這在我的情況下是浪費。
你是指28 *字節*的字符串嗎? –