算法的大O复杂性 - LZW和Huffman

时间:2011-05-31 15:16:12

标签: algorithm compression big-o time-complexity space-complexity

对于Lempel-Ziv-Welch和Huffman压缩算法,Big O表示法的空间和时间复杂度是多少?谷歌让我失望。

谢谢,

旧金山

2 个答案:

答案 0 :(得分:8)

由于字典大小是固定的且与输入长度无关,LZW在O( n )中,因为每个字节只读取一次,并且每个字符的操作复杂度是不变的。

Huffman encoding也在O( n )中:首先计算每个输入字节的出现次数,然后对其进行排序并构建输出编码。

答案 1 :(得分:3)

取决于实施。他们总是变得更好。 “霍夫曼”这个术语有点过于普遍。例如,你可能意味着一个显式树,一个隐含的,一个动态的... 但无论如何,我想如果你这样做非常聪明你应该能够在 O(n)上实现alomost任何“Huffman”, n < / em>是文本长度。

LZW也依赖于实现。我不知道什么是“O”常见的实现。我猜大桌子你可能有类似 O(n log n)的东西,但这只是猜测。