霍夫曼编码是一种无损数据压缩算法。最频繁的字符获得最小的代码,最不频繁的字符获得最大的代码。考虑以下有关霍夫曼编码算法的陈述?
S1:Huffman 算法的时间复杂度为 O(nlogn)。使用堆来存储每棵树的权重,每次迭代需要 O(logn) 时间来确定最便宜的权重并插入新的权重。有 O(n) 次迭代,每个项目一次。
S2:如果输入数组是排序的,则存在线性时间算法。
S3:分而治之的方法可能会让我们问哪些字符应该出现在左右子树中,并尝试从上到下构建树。与最优二叉搜索树一样,这将导致指数时间算法。
以下哪个选项是正确的?
(A)语句 S1 正确,语句 S2 和 S3 不正确。
(B)陈述 S1 和 S2 是正确的,陈述 S3 是不正确的。
(C)陈述 S2 和 S3 是正确的,陈述 S1 是不正确的。
(D)所有陈述 S1、S2 和 S3 都是正确的。答案: (D)
解释:所有给定的陈述都是正确的。
这个问题的测验