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

问题描述

|| 对于Lempel-Ziv-Welch和Huffman压缩算法,用大O表示法表示的时空复杂度是多少?谷歌让我失望。 谢谢, 弗朗西斯科     

解决方法

        由于字典大小是固定的,并且与输入长度无关,因此LZW在O(n)中,因为每个字节仅被读取一次,并且每个字符的操作复杂度是恒定的。 霍夫曼编码也用O(n)表示:首先,对每个输入字节进行计数,然后对其进行排序,并构建输出编码。     ,        取决于实现。他们一直都在进步。 “霍夫曼”这个术语太常见了。例如,您的意思可能是显式树,隐式树,动态树... 但是无论如何,我想如果您做的非常聪明,您应该能够在O(n)上实现几乎任何\“ Huffman \”,其中n为文本长度。 LZW也依赖于实现。我不知道什么是普通的“ O”实现。我猜对于大表,您可能会有类似O(n log n)的东西,但这仅是一个猜测。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...