Sorting 为什么我们对最佳和一般情况也使用大O表示法?
Sorting 为什么我们对最佳和一般情况也使用大O表示法?,sorting,data-structures,time-complexity,big-o,Sorting,Data Structures,Time Complexity,Big O,我们可以看到不同算法的最佳、最差和平均情况时间复杂度,然后假设对于合并排序,最佳情况应该是Ω(n logn),而不是O(n logn)。类似地,对于一般情况,应该给出Θ(n logn),但也使用了大O符号。不管是最佳情况还是平均情况,这个大O符号在这个表中随处可见。请解释一下原因。在实践中,有两种版本的渐近符号在使用 形式的、数学上严格的渐近性。如果你在数学环境中工作(例如,你试图证明某个表达式的严格界限,或者你试图论证某个算法不存在的原因),那么在进行论证的过程中,你绝对需要从O,Ω,O,ω
我们可以看到不同算法的最佳、最差和平均情况时间复杂度,然后假设对于合并排序,最佳情况应该是Ω(n logn),而不是O(n logn)。类似地,对于一般情况,应该给出Θ(n logn),但也使用了大O符号。不管是最佳情况还是平均情况,这个大O符号在这个表中随处可见。请解释一下原因。在实践中,有两种版本的渐近符号在使用
- 形式的、数学上严格的渐近性。如果你在数学环境中工作(例如,你试图证明某个表达式的严格界限,或者你试图论证某个算法不存在的原因),那么在进行论证的过程中,你绝对需要从O,Ω,O,ω,Θ等中正确选择,因为它们具有特定的技术意义。这就是为什么,例如,如果你拿起一篇CS理论论文,你会看到不同的渐近符号混合在一起
- 非正式的非专业人员用法。大多数实践软件工程师都对大O表示法感兴趣,因为它关系到整个程序的效率。在这种情况下,big-O表示法的使用方式在技术上并不正确,但仍然可以很好地代表其含义。例如,有人可能决定选择一个数据结构而不是另一个,理由是“第一个数据结构上的操作需要时间O(logn),而第二个数据结构上的操作需要时间O(n)”,即使这样的语句类似于这样说“Amit比Pranav短,因为Amit最多2米高,Pranav最多5米高。”虽然这在数学上并不正确,但从这个词通常被使用的方式来看,它通常很清楚它的意思