Algorithm 任意算法复杂度的故障分析
我一直在读CLRS算法书,我决定自己尝试一个问题。我一直在尝试使用一种新方法来帮助理解任意算法的复杂性,如下所示。以下是我的方法: 逐行分析:Algorithm 任意算法复杂度的故障分析,algorithm,complexity-theory,big-theta,Algorithm,Complexity Theory,Big Theta,我一直在读CLRS算法书,我决定自己尝试一个问题。我一直在尝试使用一种新方法来帮助理解任意算法的复杂性,如下所示。以下是我的方法: 逐行分析: 第2行。自然数之和。Theta(N) 第3行。平方和。Theta(N2) 第4行。如果j可被i整除。Theta(?) 第5行。自然数之和。Theta(N) 算法: 1. sum = 0 2. for i=1 to n do 3. for j=1 to i2 do 4. if(j(mod i) == 0) then 5.
第2行。自然数之和。
Theta(N)
第3行。平方和。
Theta(N2)
第4行。如果j可被i整除。
Theta(?)
第5行。自然数之和。
Theta(N)
算法:
1. sum = 0
2. for i=1 to n do
3. for j=1 to i2 do
4. if(j(mod i) == 0) then
5. for k=1 to j do
6. sum++
1。总和=0
2.对于i=1到n do
3.对于j=1到i2 do
4.如果(j(mod i)==0),则
5.对于k=1到j do
6.sum++
正如你所知道的,我正试图找到执行
sum++
的次数,这是第4行让我感到厌烦的地方。有人能给我一点指导吗?请看:提示:有x/i
数字可能重复您的方法(乘以每个循环的最坏情况复杂性),尽管它在许多简单情况下给出了正确的答案,但通常无效for(i=1;i)问题到底是什么?您不知道如何计算复杂性,也不知道mod是什么?