蛮力法
1、对 f ( n ) = n f(n) = n f(n)=n, 并且 a = b a = b a=b 的情况,证明递归方程 T ( n ) = a × T ( n / b ) + f ( n ) T(n) = a \times T(n/b) + f(n) T(n)=a×T(n/b)+f(n) 的解为 O ( n log n ) O(n \log n) O(nlogn).
证明:由 f ( n ) = n f(n) = n f(n)=n, f ( n ) ∈ Θ ( n d ) f(n) \in \Theta (n^d) f(n)∈Θ(nd) ,得 d = 1 d = 1 d=1
又 a = b a = b a=b,即要求我们证明 T ( n ) ∈ Θ ( n l o g n ) T(n) ∈ \Theta (n logn ) T(n)∈Θ(nlogn)。不失一般性, 假定 n 为 a 的整幂,
即存在正整数 k,使得 n = a k n = a^k n=ak 。同时假定 T ( 1 ) T(1) T(1) 为常数,当 n > 1 n > 1 n>1 时, 则:
T ( n ) = a × T ( n / a ) + n T(n)= a \times T(n/a)+ n T(n)=a×T(n/a)+n
= a ⋅ ( a ⋅ T ( n / a 2 ) + n / a ) + n = a \cdot (a \cdot T(n/a^2)+n/a)+n =a⋅(a⋅T(n/a2)+n/a)+n
= a 2 ⋅ T ( n / a 2 ) + 2 n = a^2 \cdot T(n/a^2)+2n =a2⋅T(n/a2)+2n
= a k ⋅ T ( n / a k ) + k n =a^k \cdot T(n/a^k)+kn =ak⋅T(n/ak)+kn
因为