霍夫曼编码是一种无损数据压缩算法。最频繁的字符获得最小的代码,而最不频繁的字符获得最大的代码。考虑以下有关霍夫曼编码算法的陈述吗?
S1:霍夫曼算法的时间复杂度为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)
说明:所有给定的语句都是正确的。
这个问题的测验