循环中的大O复杂性

时间:2016-09-03 18:12:59

标签: algorithm time-complexity big-o complexity-theory

如果你的算法有一个循环,第一次执行n步,那么第二次n - 2,下一次n - 4,并一直重复直到最后一次循环执行2步,这个循环的复杂性度量是什么?

我认为这表现出O(n ^ 2)的复杂性,因为未执行的步数增加了二次方。我很难想象这样的循环本身,这使我对我的答案缺乏信心。

非常感谢任何形式的帮助/第二意见:)

1 个答案:

答案 0 :(得分:1)

你是正确的,复杂性是Θ(n 2 。这是因为您描述的是arithmetic progression

(n - 2)+(n - 4)+ ... + 2 (或末尾为奇数)

(显然, 2 + 4 + 6 + ... +(n - 2)或奇数开头等价物,BTW)。

使用formula for the sum,它是第一个和最后一个元素的平均值,乘以元素数量。这些术语中的每一个都是Θ(n),它们的乘积是Θ(n 2