以下程序的时间复杂度是多少?

这个问题在这里已经有了答案:

  • 大O,你如何计算/估计它? 22个答案

  • 在你的外部循环中,你将从n→n ^ 2,即(n ^ 2-n)次迭代是O(n ^ 2)。

    在你的内部循环中,你将从1-(大约)(n ^ 2)log(n ^ 2),即O((n ^ 2)log(n))

    a[i][j]+=3*i*j; 是O(1),所以你没有贡献。

    把它放在一起,你有O(n ^ 2 * n ^ 2 * log(n)),它是O(n ^ 4 log(n))


    迈克的回答是正确的,只是以不同的方式扩展步骤

    内循环:const * i * log(i)外循环:const * i * log(i)的Sum(i over 1:n ^ 2)

    O(算法)= O(Sum(i超过1:n ^ 2)的i * log(i))

    从http://en.wikipedia.org/wiki/Summation我们发现

    (i * log(i))= Theta(m ^ 2 * log(m))的和(i超过1:m)

    替代m = n ^ 2我们得到

    O(algo)= O(n ^ 2)^ 2 log(n ^ 2)= O(n ^ 4)log(n)(消除2)(其实这是算法的θ)

    编辑:我只是注意到外环是我在n:n ^ 2,但答案是相同的

    链接地址: http://www.djcxy.com/p/39361.html

    上一篇: what's the time complexity of the following program?

    下一篇: What is the Complexity of Find() Function