并非所有递归函数都适用于主定理
递归函数时间复杂度的快速判断:
(首先膜拜一下大佬)
利用等比数列进行证明。
结论:
中间的logn底数应该为b。
快速判断的小技巧:比较下一层比当前层的工作量:
比当前层少,则公比小于1,为第一种情况;
和当前层一样,则公比为1,为第二种情况;
比当前层多,则公比大于1,为第三种情况。
或直接比较d与logb a的大小,二者取其大(时间复杂度保留最大的项)。相等则要在f(n)后面乘个log(即若f(n)自身也有log,也要算在内)。
贴一个算法导论里的描述: