对于考研,不管是408抑或是自命题,有关于求时间复杂度的题目是一定要掌握的;408如果正常出题在这个地方一个选择题是非常有可能的,另外算法大题也非常有可能让分析时间空间复杂度,此时如果你用的递归类解决问题,掌握如何求递归类算法时间复杂度也是非常有必要。当然按照09年到24年来看,仅出过一次递归算法求时间复杂度的题,但不可避免接下来再出此类题型,甚至在数据结构非算法大题中也有可能出现。
本文以两道例题简单介绍一下公式法求解,其他方法后续更新~~希望能帮助到读者
例1,求归并排序算法时间复杂度,函数代码如下图
step1~求该算法的递归方程
问题规模还是n,其中mergesort(i,m)问题规模变成n/2,同理mergesort(m +1,j)问题规模变成n/2,合并操作merge 始终为n,故递归方程可表示为
step2.运用公式法对递归方程进行求解时间复杂度
例2~一道408真题
step1.求递归方程
step2.公式法求时间复杂度