复杂性(初学者问题)

时间:2011-05-14 14:51:10

标签: language-agnostic computer-science complexity-theory

这些陈述的复杂性是什么?

for(int k = 1; k < n; k++)
    for(int i = 0; i < n-k; i++){
        //O(1) operation here
    }

解释赞赏。

1 个答案:

答案 0 :(得分:4)

首先进入外循环,执行n-1次操作。 第二步你做n-2次,...添加所有这些,你最终会进行(n)*(n-1)/2次操作。

要查看该总和,请将其从1写入(n-1),然后从(n-1)写入1并逐个添加每个术语。

  1   2   3 ... n-3 n-2 n-1
n-1 n-2 n-3 ...   3   2   1
---------------------------
  n   n   n       n   n   n

所以2 * sum = (n-1) * n

就复杂性而言,这是