如果你的算法有一个循环,第一次执行n步,那么第二次n - 2,下一次n - 4,并一直重复直到最后一次循环执行2步,这个循环的复杂性度量是什么?
我认为这表现出O(n ^ 2)的复杂性,因为未执行的步数增加了二次方。我很难想象这样的循环本身,这使我对我的答案缺乏信心。
非常感谢任何形式的帮助/第二意见:)
答案 0 :(得分:1)
你是正确的,复杂性是Θ(n 2 )。这是因为您描述的是arithmetic progression:
(n - 2)+(n - 4)+ ... + 2 (或末尾为奇数)
(显然, 2 + 4 + 6 + ... +(n - 2)或奇数开头等价物,BTW)。
使用formula for the sum,它是第一个和最后一个元素的平均值,乘以元素数量。这些术语中的每一个都是Θ(n),它们的乘积是Θ(n 2 )。