【发布时间】:2017-05-17 07:21:53
【问题描述】:
我在 Cormen 看到了这样的声明:
由于算法在恒定大小输入上的运行时间是一个常数,因此算法运行时间产生的递归通常具有 对于足够小的 n,T(n)=theta(1)。
但是如果我们考虑排序,那么即使输入大小是恒定的,运行时间也会发生变化(当输入已经排序时,与输入按降序排列的情况相比,我们必须将其按升序排序)。运行时间怎么能恒定?
【问题讨论】:
-
如果 n 非常小,比如 n = 10 或 n = 2,那么算法的运行速度就会非常快。如果算法中的另一个变量比 n 大得多,则可以假设时间是常数
-
对于恒定大小的输入,最佳、最差和平均情况的上限和下限是恒定的。 “运行时间 [复杂性] ... 是恒定的”不应被理解为“对于该大小的任何输入,它总是需要完全相同数量的操作”。
标签: algorithm sorting asymptotic-complexity