O(n ^ 2)来自O(n ^ 2 * log n)?

时间:2018-06-03 15:40:24

标签: algorithm data-structures time-complexity big-o

你能解释一下O(n ^ 2 * log n)的样子吗?我理解 O(n * log n)

HandlerMethodArgumentResolver

当外循环从1运行到n是O(n)并且内循环每个外循环重复log(n)次,例如j * = 2.此外,我确实理解 O(n ^ 2)< / strong>确实(性能与输入数据大小的平方成正比例如)

HandlerMethodArgumentResolver

O(n ^ 2 * log n)是什么?你能举个例子吗?

2 个答案:

答案 0 :(得分:2)

你只需要在外面添加一个for循环。这使得 O(n ^ 2 * log n)因为您重复 O(n * log n) n次

{{1}}

答案 1 :(得分:1)

for(i=0; i<n; i++)
{
    for (int ij = 0; ij < n; ++ik) {
        for (j=0; j < ij; j *= 2)
        {
            s=s+i*j;
        }
    }
    s=s+1
}

这样想:

  1. 我的输入是n。
  2. 在第一个循环中,我遍历n中的每个元素,因此我的复杂性为n
  3. 所以这意味着在第二个循环中我遍历每个元素ij n次,我的复杂性变为n*n
  4. 在第三个循环中,我正在进行访问logn个元素的logaritmic遍历。但是每个logaritmic遍历都比先前的循环执行n*n次,因此变为n*n*logn