3T(n/2)+n 的递推式
主要定理公式求解
根据递推式 T(n)=3T(n/2)+n ;可知 a=3,b=2,f(n)=n;计算出来的结果是:
log
2
3
>
1
\log_2{3}>1
log23>1则有
n
l
o
g
2
3
+
c
>
f
(
n
)
n^{log_2{3}+c}>f(n)
nlog23+c>f(n),当c=0时。所以符合主定理公式的条件一,
所以,
T
(
n
)
=
n
log
2
3
=
O
(
n
l
o
g
3
)
T(n)=n^{\log_23}=O(n^{log3})
T(n)=nlog23=O(nlog3)
最后,附上主定里公式:
递归式求解
求总和为
T
(
n
)
=
∑
k
=
0
k
=
l
o
g
2
n
−
1
(
3
2
)
k
×
n
+
3
l
o
g
2
n
Φ
(
1
)
T(n)=\sum_{k=0}^{k=log_2n-1}({\frac{3}{2}})^k\times n+3^{log_2n}\Phi(1)
T(n)=k=0∑k=log2n−1(23)k×n+3log2nΦ(1)
T
(
n
)
=
2
×
3
log
2
n
−
n
+
3
l
o
g
2
n
Φ
(
1
)
=
2
×
3
l
o
g
2
n
T(n)=2\times3^{\log_2n}-n+3^{log_2n}\Phi(1)=2\times3^{log_2n}
T(n)=2×3log2n−n+3log2nΦ(1)=2×3log2n
因为
3
l
o
g
2
n
=
(
2
l
o
g
2
3
)
l
o
g
2
n
=
(
2
l
o
g
2
n
)
l
o
g
2
3
=
n
l
o
g
2
3
3^{log_2n}=(2^{log_23})^{log_2n}=(2^{log_2n})^{log_23}=n^{log_23}
3log2n=(2log23)log2n=(2log2n)log23=nlog23所以
T
(
n
)
=
n
l
o
g
3
T(n)=n^{log3}
T(n)=nlog3
最后的结果是:线性对数阶
T
(
n
)
=
n
l
o
g
3
T(n)=n^{log3}
T(n)=nlog3
结束 :如果小伙伴们有不同的意见,欢迎讨论
226156564@qq.com