根据递归方程求解:
T ( n ) = 2 T ( n 2 ) + 2 n T(n) = 2T( \frac{n}{2}) + 2n T(n)=2T(2n)+2n
T ( n 2 ) = 2 T ( n 4 ) + 2 n 2 T(\frac{n}{2}) = 2T( \frac{n}{4}) + 2\frac{n}{2} T(2n)=2T(4n)+22n
T ( n 4 ) = 2 T ( n 8 ) + 2 n 4 T(\frac{n}{4}) = 2T( \frac{n}{8}) + 2\frac{n}{4} T(4n)=2T(8n)+24n
T ( n 8 ) = 2 T ( n 16 ) + 2 n 8 T(\frac{n}{8}) = 2T( \frac{n}{16}) + 2\frac{n}{8} T(8n)=2T(16n)+28n
. . . ... ...
T ( 1 ) = 1 T(1) = 1 T(1)=1
考虑:
- 总共有 log 2 n \log_2n log2n项,因此带入后的第一部分为n
- 第二部分为: 2 n + 2 n + 2 n + . . + 2 n 2n + 2n + 2n + .. + 2n 2n+2n+2n+..+2n,总共有 log 2 n \log_2n log2n项, 和为 2 n log 2 n 2n\log_2n 2nlog2n, 因此总共的时间复杂度为 n log 2 n n\log_2n nlog2n。