持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第11天,点击查看活动详情
算法复杂度-大O表示法
大O表示法计算规则如下:
- 加法规则:多项相加,保留最高阶项,并将系数化为1
- 乘法规则:多项相乘都保留,并将系数化为1
- 加法乘法混合规则:先小括号,再乘法规则,最后加法规则
各类算法复杂度排序如下图:
时间复杂度和空间复杂度
- 代码段以及代码段对应的时间复杂度如下图:
递归式算法复杂度
时间复杂度
- 当每次递归的时间复杂度不变时,时间复杂度=递归次数*每次递归的时间复杂度
- 上面第一张图的时间复杂度:O(n)*O(1)=O(n)
- 上面第二张图的时间复杂度:O(lgn)*O(1)=O(lgn)
空间复杂度
- 上面第一张图的空间复杂度:O(1)
- 上面第二张图的空间复杂度:O(lgn)(每次调用都会定义变量i)
递归式主方法计算时间复杂度
- 主方法也称主定理,给出了求解下图形式递归式的快速方法,其中,a>=1和b>1是常数,f(n)是一个渐进的正函数
- 主定理内容如下:
- 软考中只会考前两种情况,一般只要将a,b的值带入这两种情况,看符合那种情况