我知道算法的时间T(n)
可以O(g(n))
受以下定义的限制:
T(n) is O(g(n)) iff there is a c > 0, n0 > 0, such that for all n >= n0:
对于大小为n,
A 的每个输入,最多需要c * g(n)
步数。
T(n)
是所有大小为 n 的输入中最长的时间。
但是我不明白的是Ω(g(n))
. 定义是对于一些大小为 n 的输入,A 至少需要c * g(n)
几步。
但是,如果这是定义,Ω
那么我不能找到与上限相同的任何算法的下限吗?例如,如果在最坏的情况下进行排序,O(nlogn)
那么我不能轻松地展示Ω(nlogn)
以及看到对于任何尺寸 n 必须采取nlogn
步骤的至少一个错误输入吗?让我们假设我们正在谈论heapsort
. 我真的不确定我在这里遗漏了什么,因为每当我被教一种新算法时,某种方法的时间都是Ɵ(g(n)) or O(g(n))
,但没有解释为什么会这样Ɵ or O
。
我希望我说的足够清楚,如果不是然后问你误解了什么。我真的需要澄清这种困惑。谢谢你。