Algorithm 算法复杂性意味着最坏情况的复杂性

Algorithm 算法复杂性意味着最坏情况的复杂性,algorithm,complexity-theory,Algorithm,Complexity Theory,我们有最佳情况、平均情况和最坏情况的时间复杂性。所以有人问我们算法的复杂性他指的是什么?通俗地说:通常是平均情况。这就是为什么人们说快速排序是O(N logn)时间,而哈希表查找是O(K)时间(K=密钥大小)。它们分别是最坏情况O(N^2)和O(K*N)。我建议你直言不讳 学术上:通常是最坏的情况。然而,在学术界,人们通常对证明给定问题的复杂性类感兴趣,而不是检查算法的复杂性。对于院士来说,算法可能只是复杂度上限的一个简便证明,而不是实际的研究对象 另一个问题是“平均情况”完全依赖于输入分布。大

我们有最佳情况、平均情况和最坏情况的时间复杂性。所以有人问我们算法的复杂性他指的是什么?

通俗地说:通常是平均情况。这就是为什么人们说快速排序是O(N logn)时间,而哈希表查找是O(K)时间(K=密钥大小)。它们分别是最坏情况O(N^2)和O(K*N)。我建议你直言不讳

学术上:通常是最坏的情况。然而,在学术界,人们通常对证明给定问题的复杂性类感兴趣,而不是检查算法的复杂性。对于院士来说,算法可能只是复杂度上限的一个简便证明,而不是实际的研究对象


另一个问题是“平均情况”完全依赖于输入分布。大多数人假设分布是均匀的,除非他们使用“真实世界”一词,在这一点上,任何人都可以猜测他们的输入是什么。

我们需要更多的上下文。否则可能是他们中的任何一个,正如卡西弗斯所说,可能是他们中的任何一个。所以,如果有人问,把所有的都给他。问题解决了:PLi和Vitanyi在“Kolmogorov复杂性及其应用简介”第4.4节中指出,“在普遍分布下,任何算法的平均情况计算复杂性与最坏情况复杂性的数量级相同”。粗略地说,如果您的输入是由随机选择的计算机程序生成的,则该程序生成大量最坏情况输入的可能性非常大。当然,在生成“随机选择的计算机程序”时必须指定分布,否则无法进行此类分析“普遍分发“上面指定了一个精确的定义,尽管它对只影响细节的更改非常健壮。您可以通过谷歌搜索上面双引号内的短语或转到来查看完整的参数。FWIW,我怀疑可能有一个漏洞,随机算法运行一个真正的随机数源。