递推方程的时间复杂度

时间:2017-09-20 04:39:35

标签: time-complexity recurrence

递推方程的运行时间Cn = C(n / 2)+ 1,C1 = 1.

它的时间复杂度是多少?

我在考虑O(logn),因为它与(+1)无关,因为n>大O符号中的1。如果n = 0,那将只是O(1)。我很困惑。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

C n = C n / 2 + 1 的时间复杂度 O(logn) 使用Master Theorem。顺便说一下Binary Search的等式。

从主方法:

T n = aT n / b + F n

以下三种情况:

  1. 如果f(n)= O(n c ),其中c Log b a 然后T(n)= O(n Log b a

  2. 如果f(n)= O(n c )其中c = Log b a 则T(n)=为O(n 日志<子> b'/子>一 * logN)的

  3. 如果f(n)= O(n c ),其中c> Log b a 然后T(n)= O(f(n))

  4. 在你的情况下: a = 1b = 2

    所以n Log b a = n Log 2 1 = n 0 = 1

    f(n)= O(1)。所以n Log b a = c(案例2)

    因此,T(n)= O(n Log b a * Logn)=Θ(n 0 * Logn)= <强> O(logN)的