T(N) = a * T(N / b) + f(N) (f(N) 为多项式 Nd …)
(1)log(b, a) > d ==> 时间复杂度为O(Nlog(b,a))
(2)log(b, a) = d ==> 时间复杂度为O(Nd * log(N))
(3)log(b, a) < d ==> 时间复杂度为f(N)
解析:T(N) = 8(N / 3) + (N2)
可得:a = 8, b = 3, d = 2
log(3, 8) < 2 ==> 时间复杂度为O(N2logN)
A. O(N2logN)
B. O(N2log2N)
C.O(N3logN)
D.O(Nlog8/log3)
A.每步将问题分成规模均为N/3的2个子问题,且治的步骤耗时O(N)
解析:T(N) = 2(N / 3) + N
可得:a = 2, b = 3, d = 1
log(3, 2) < 1 ==> 时间复杂度为O(N)
B.每步将问题分成规模均为N/3的2个子问题,且治的步骤耗时O(NlogN)
解析:T(N) = 2(N / 3) + N
可得:a = 2, b = 3, d = 1
log(3, 2) < 1 ==> 时间复杂度为O(NlogN)
C.每步将问题分成规模均为N/2的3个子问题,且治的步骤耗时O(N)
解析:T(N) = 3(N / 2) + N
可得:a = 3, b = 2, d = 1
log(2, 3) > 1 ==> 时间复杂度为O(Nlog(2,3))
D.每步将问题分成规模均为N/3的3个子问题,且治的步骤耗时O(NlogN)
解析:T(N) = 3(N / 3) + N
可得:a = 3, b = 3, d = 1
log(3, 3) == 1 ==> 时间复杂度为O(NlogN)
解析:T(N) = 2(N / 2) + N
可得:a = 2, b = 2, d = 1
log(2, 2) == 1 ==> 时间复杂度为O(NlogN)
A. O(logN)
B. O(N)
C. O(NlogN)
D. O(N2)
解析:T(N) = 4(N / 2) + N2
可得:a = 4, b = 2, d = 2
log(2, 4) == 2 ==> 时间复杂度为O(N2) * logN * logN == O(N2 log2N)
A. O(N2logN)
B. O(N2)
C. O(N3logN)
D. O(N2log2N)