Algorithm 寻找这两种算法的时间复杂度?

Algorithm 寻找这两种算法的时间复杂度?,algorithm,time,time-complexity,big-o,complexity-theory,Algorithm,Time,Time Complexity,Big O,Complexity Theory,这是第一个算法 sum = 0; for( i=1; i<n; i++ ) for( j=0; j<i*n; j++ ) for( k=0; k<j; k++) sum++; sum=0; 对于(i=1;i第一个算法的时间复杂度为: sum_{i=1}^{n-1} sum_{j=1}^{i*n} j = sum_{i=1}^{n-1} i * n * (i*n + 1) / 2 = 0.5 * su

这是第一个算法

sum = 0;
for( i=1; i<n; i++ )
        for( j=0; j<i*n; j++ )
            for( k=0; k<j; k++)
            sum++;      
sum=0;

对于(i=1;i第一个算法的时间复杂度为:

sum_{i=1}^{n-1} sum_{j=1}^{i*n} j =
sum_{i=1}^{n-1} i * n * (i*n + 1) / 2 = 
0.5 * sum_{i=1}^{n-1} i^2 * n^2 + i*n = 
0.5 * (n^2 * sum_{i=1}^{n-1} i^2 + n * sum_{i=1}^{n-1} i) = 
0.5 * (n^2 * \Theta(n^3) + n * \Theta(n^2)) = \Theta(n^5)
所以,你是对的。但是要小心,这是渐进的时间复杂度,可能与测量的CPU运行时间不同


对于第二种算法也是一样的(只是有一个微小的差异),就像往常一样,
j%1
对于所有
j>0
第一种算法的时间复杂度如下所示:

sum_{i=1}^{n-1} sum_{j=1}^{i*n} j =
sum_{i=1}^{n-1} i * n * (i*n + 1) / 2 = 
0.5 * sum_{i=1}^{n-1} i^2 * n^2 + i*n = 
0.5 * (n^2 * sum_{i=1}^{n-1} i^2 + n * sum_{i=1}^{n-1} i) = 
0.5 * (n^2 * \Theta(n^3) + n * \Theta(n^2)) = \Theta(n^5)
所以,你是对的。但是要小心,这是渐进的时间复杂度,可能与测量的CPU运行时间不同


第二种算法也是一样(有一个微小的差异),就像往常一样,
j%1
对于所有
j>0
都等于零。你所说的“巨大差异”到底是什么意思?任何常数都可以。“如果(j%1==0)”这是没有用的,它总是正确的。所以这两个实际上是相同的。@ MRSMI42 42我不是在谈论他们的时间复杂性…我实际上在C++编译器中实现了这些算法,并计算了不同输入大小(例如5, 10, 15等)的CPU运行时间。对于这些算法,上面提到的两个算法的运行时间几乎相同。然后我使用了一个算法,我确信它是O(n^5)对于相同的输入大小,该算法的时间复杂度和CPU运行时间。但我得到的结果与我从这两个算法得到的结果相差甚远。然而,我的疑问现在已经消除,我知道它们为什么不一样了。你所说的“巨大差异”到底是什么意思?任何常数因子都可以。“如果(j%1==0)”这是没有用的,它总是正确的。所以这两个实际上是相同的。@ MRSMI42 42我不是在谈论他们的时间复杂性…我实际上在C++编译器中实现了这些算法,并计算了不同输入大小(例如5, 10, 15等)的CPU运行时间。对于这些算法,上面提到的两个算法的运行时间几乎相同。然后我使用了一个算法,我确信它是O(n^5)对于相同的输入大小,该算法的时间复杂度和CPU运行时间。但是,我得到的结果与我从这两个算法得到的结果相差甚远。然而,我的疑问现在已经消除,我知道它们为什么不一样了。谢谢你消除了疑问。我现在明白了为什么测量的CPU运行会有差异宁时间…我已经得到了我的答案,但我仍然对一件事感到困惑。我分析了循环,得到了O(n^5)但是我不知道你是怎么找到同样的答案的,我可以知道你用什么公式或方程式来达到这个目的吗,哈哈?我真的很感激。就原来的问题而言,它已经被回答了。谢谢you@HassanAshas我很乐意。你可以在这个链接中找到相关的公式:好的,谢谢你澄清这个疑问。我明白了现在,我已经得到了我的答案,但我仍然对一件事感到困惑。我分析了循环,得到了O(n^5)但是我不知道你是怎么找到同样的答案的,我可以知道你用什么公式或方程式来达到这个目的吗,哈哈?我真的很感激。就原来的问题而言,它已经被回答了。谢谢you@HassanAshas很高兴为您效劳。您可以在此链接中找到相关公式: