如何进行算法分析
How to Perform Algorithm analysis
我有如下算法,需要对其进行大O分析。我对这个话题很陌生,但我理解 O(1)、O(n)、O(n2)..O(log n) 和 O(n log n) .
我将如何分析以下算法?
x <== 1
for i = 1 to n
for j = i to 1 (decrement)
x <== x + 1
内循环的每一次执行:for j = i to 1
,都会运行i步,i从1到n。
所以总的时间复杂度是
1 + 2 + ... + n = n*(n+1)/2 ~ O(n^2)
我有如下算法,需要对其进行大O分析。我对这个话题很陌生,但我理解 O(1)、O(n)、O(n2)..O(log n) 和 O(n log n) .
我将如何分析以下算法?
x <== 1
for i = 1 to n
for j = i to 1 (decrement)
x <== x + 1
内循环的每一次执行:for j = i to 1
,都会运行i步,i从1到n。
所以总的时间复杂度是
1 + 2 + ... + n = n*(n+1)/2 ~ O(n^2)