递推方程的运行时间Cn = C(n / 2)+ 1,C1 = 1.
它的时间复杂度是多少?
我在考虑O(logn),因为它与(+1)无关,因为n>大O符号中的1。如果n = 0,那将只是O(1)。我很困惑。谢谢你的帮助。
答案 0 :(得分:0)
是 C n = C n / 2 + 1 的时间复杂度 O(logn)
使用Master Theorem。顺便说一下Binary Search的等式。
从主方法:
T n = aT n / b + F n
以下三种情况:
如果f(n)= O(n c ),其中c
如果f(n)= O(n c )其中c = Log b a 则T(n)=为O(n 日志<子> b'/子>一 * logN)的
如果f(n)= O(n c ),其中c> Log b a 然后T(n)= O(f(n))
在你的情况下:
a = 1
,b = 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)的强>