【发布时间】:2014-06-15 04:35:26
【问题描述】:
例如,如果归并排序的时间复杂度是 O(n log n) 那么为什么它是大 O 而不是 theta 或 omega。我知道这些的定义,但我不明白的是如何根据定义确定符号。
【问题讨论】:
标签: algorithm time complexity-theory
例如,如果归并排序的时间复杂度是 O(n log n) 那么为什么它是大 O 而不是 theta 或 omega。我知道这些的定义,但我不明白的是如何根据定义确定符号。
【问题讨论】:
标签: algorithm time complexity-theory
对于大多数算法,您基本上关心的是其运行时间的上限。例如,您有一些算法来对一组数字进行排序。现在您很可能会担心算法在最坏的情况下运行的速度有多快。
因此,归并排序的复杂性大多写为O(nlogn),即使将其表示为theta(nlogn) 会更好,因为theta 表示法的界限更紧密。合并排序在theta(nlogn) 时间运行,因为无论输入是什么,它总是会消耗这么多时间。
您不会再找到 omega 表示法,主要是因为我们关心的是运行时间的上限而不是下限。
【讨论】: