初赛似乎是必考一题时间复杂度计算,现在在考前抱下佛脚。
主定理
给定这样一个式子:
T(n)=aT(bn)+ndP
其中 P 表示一个式子,通常 P=logkn,k≥0,如 T(n)=2T(2n)+nlogn 时,则 d=1,P=logn
然后分三种情况:
- nlog_ba>nd,则 T(n)=nlog_ba
- nlog_ba<nd,则 T(n)=nd
- nlog_ba=nd,当 P=logkn 时,即后面带的那个式子是 ndlogkn 时,T(n)=ndlogk+1n
这样初赛中绝大多数时间复杂度题应该都能过了。
递归、递归树
最好懂最无脑,考场上时间够可以用这个。