【问题标题】:Big theta notation for nested loop with division带有除法的嵌套循环的大 theta 表示法
【发布时间】:2014-11-20 00:34:14
【问题描述】:

我正在尝试为大 theta 表示法解决此功能。

我假设外循环是 log(n) 而内循环是 (n)?所以整体来说是nlogn?

var total = 4;
    var c = 6;
    for(var v = c ; v > 0 ; v = Math.floor(i/4 ))
        for(var x = 0; x < Math.pow(c,2); j++ )
            total++ ;

    console.log(total);

【问题讨论】:

  • 这个非常低效的代码的奇怪问题。

标签: javascript big-o big-theta


【解决方案1】:

内部循环是从 0 到 n^2,所以它实际上是 n^2 * log n。另外,对数的底是4。

【讨论】:

  • 内部循环实际上是“从” 0 到 n²-1。此外,在朗道表示法和一般时间复杂度的数量级估计中,乘法常数无关紧要,因此对数的底是无关紧要的。
【解决方案2】:

由于Math.pow(n, 2)n 的平方且j 在每次内部循环迭代中递增1,因此内部循环具有时间复杂度Theta(n²)(实际上它的主体在每个循环中恰好执行n² 次)。外层循环的主体执行了 Theta(log(n)) 次,正如你猜对的那样。

得到的复杂度为 Theta(n²log(n))。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-31
    • 2022-07-18
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    • 2017-01-02
    • 1970-01-01
    相关资源
    最近更新 更多