如何将此循环转换为大 O 表示法

how to turn this loops to big-o notation

问题: 对于下面给出的伪代码,T 是第 i 行 运行 的或指令周期,以大 O 表示法提供总执行时间。

// get a positive integer from input
if n > 10
  print "this might take a while"
for k=1 to n
  for j = 1 to k
    print k*j
print "Done!"

实际上我知道该代码的作用,但我不明白如何用大 O 表示法输入它?

编辑:loop as php

内循环是运行n*(n+1)/2,所以是O(n^2)

for k=1 to n
  for j = 1 to k
    print k*j

外层循环会迭代n次,这部分很简单。由于它除了 运行 内部循环外没有任何作用,我们可以出于大 O 计算的目的忽略它。内部循环将迭代 1 + 2 + 3 + 4 ... + n 次,即 triangular number(n*(n+1))/2。大 O 符号忽略常量,因此可以简化为 O(n*n)O(n^2).

值得注意的是,该算法的最差、最佳和平均情况都是相同的。