我的打印三角算法的时间复杂度是多少?

时间:2015-09-27 16:41:28

标签: algorithm time-complexity

我的打印三角形算法的时间复杂度是多少?

void print(int n) {
    if (n < 0) return;
    for (int k = n; k > 0; k--) {
        out.printf("[*]");
    }
    out.println();
    print(--n);
}

我认为它是O(n^2),因为我们遍历所有列和行。我对吗?但是,我对递归对算法的影响有些怀疑。

1 个答案:

答案 0 :(得分:1)

第一次迭代有 n 步骤,第二次 n - 1,依此类推,直到1.你还记得,系列之和{1,2 ,..., n }是( n 2 + n )/ 2。 (证据是对归纳概念的标准介绍。)这确实是O( n 2 )。