Performance 以下函数的时间复杂度

Performance 以下函数的时间复杂度,performance,time-complexity,asymptotic-complexity,Performance,Time Complexity,Asymptotic Complexity,请帮助我给出以下函数的时间复杂度分析 function (n) { for( i = 1 ; i <= n ; i + + ) { for( j = 1 ; j <= n ; j+ = i ) { print( “*” ) ; } } } 函数(n) { 对于(i=1;i我觉得它应该是n+n*log(n) 一个周期是O(n

请帮助我给出以下函数的时间复杂度分析

function (n)
{
    for( i = 1 ; i <= n ; i + + )
       {
            for( j = 1 ; j <= n ; j+ = i )
                {
                   print( “*” ) ;
                }
       }
}
函数(n)
{

对于(i=1;i我觉得它应该是n+n*log(n)

  • 一个周期是O(n)
  • 圈内圈为O(n^2)
  • 在这种情况下,它应该是:n*log(n)-as(n/1+n/2+n/3+…+n/n)每个迭代次数都在减少(n除以n),加上n,因为这也是第一个迭代周期
  • 最后的答案是:n+n*log(n)


    用简单的测试和一些数字检查了我的假设,看起来不错。

    StackOverflow不是一个解决家庭作业的网站。我们期待一些基本知识的演示或尝试解决方案。我们会帮助你,但不会给你答案。请看,我投票结束这个问题,因为这是一个没有主题的家庭作业问题演示解决方案的任何尝试。
    n+n/2+n/3+n/4+…
    =?如前所述:“要求家庭作业帮助的问题必须包括您迄今为止为解决问题所做工作的摘要,以及您在解决问题时遇到的困难的描述。”(此外,big-O分析通常是理论计算机科学,它有自己的StackExchange站点;我们的权限仅限于实际问题)。感谢您的回答。我还计算了答案为O(nlogn)as(1+1/2+1/3+1/4+…+1/k)=logn。但我是从这个问题开始练习的。这里他们计算出运行时是O(n√n) ,这就是为什么,我感到困惑。