g(n)复杂度为O(n ^ 2)的算法的时间复杂度

时间:2019-03-07 10:42:36

标签: time complexity-theory mergesort

我刚刚了解了各种排序方法的时间复杂性。 (例如,合并排序,快速排序)但是我仍然是该领域的初学者。 我知道如果g(n)的复杂度为O(n),则此方法的整个时间复杂度将为n logn。但是如果g(n) is O(n^2)?

的复杂性怎么办
void f(n) { 
    if (n <= 1) return;
    else { 
      g(n); 
      f(n/2);
      f(n/2);
    }
}

1 个答案:

答案 0 :(得分:0)

时间复杂度递归关系是

enter image description here

–其中G(n)g(n)的时间复杂度。解决此问题的方法,例如O(n^2)

  1. 扩展(将O(...)放到最后):

    enter image description here

    –展开m之后。第二项包含converges to 2几何级数,因此可以将其作为常量忽略。应用停止条件n = 1

    enter image description here

  2. Master Theorem。例如:

    enter image description here

    –表示情况3适用。因此,结果与(1)一致:

    enter image description here