分治法——主定理(Divide and Conquer - The Master Theorem)
Divide-and-Conquer Recurrences
What is the time required to solve a problem of size n by divide-and-conquer?
Generally, we split the problem into b small problems. The size of each small problem is n/b. There are a small problems needed to be solved(In general, a=b). So, we can express the recurrence as
T(n) = aT(n/b) + f(n).
f(n) represents the time spent on dividing a problem into b sub-problems and combining the a results.
For example, T(n) = 2T(n/2) + n.
The Mater Theorem
For integer constants a ≥ 1 and b > 1, and the function f with f(n) ∈ Θ(n^d ), d ≥ 0, the recurrence
T(n) = aT(n/b) + f(n)
(with T(1) = c) has solutions, and