数据结构:递归算法时间复杂度与空间复杂度计算方法
Ⅰ.递归算法求时间复杂度步骤
1.步骤
①先将这个递归算法分成两类,一类是满足递归条件时,一类为递归停止条件时
②然后分别算出这两类的执行次数。注意!如果在满足递归条件这一类中,计算执行次数的时候,发现要调用递归函数的话,就直接用函数记这一次的执行次数如3+T(n+1)
③根据题意,将变量从0开始的时候执行,一直执行到n,然后计算其执行次数
2.例题
计算下列递归算法的时间复杂度
分析:
①写出每一个分支语句所需要执行的次数
②将此递归算法分成两类,分别算执行次数。当为递归停止的条件时,即k=n-1,这一类的时间复杂度为n;当满足递归条件时,执行次数为(n-k)+T(n,k+1)
③计算当从n=0开始时,执行次数的变化。
解答:
第一步:
第二步:
注意:一开始进入函数时k=0,所以第一次调用为T(n,0),然后k一直加,最后会达到k=n-1,所以最后时间的复杂度就为n的平方
易错点:
分支语句的话,算执行次数每次只能算其中一个语句的执行次数,不可以同时算两个分支语句
Ⅱ.递归算法求空间复杂度步骤
1.步骤
①先将这个递归算法分成两类,一类是满足递归条件时,一类为递归停止条件时
②然后分别算出这两类的空间占用度。注意:a.如果在满足递归条件这一类中,计算执行次数的时候,发现要调用递归函数的话,就直接用函数记这一次的执行次数如3+S(n+1) b.空间复杂度,只要你在函数体内定义了一个变量,那么就会占用一个空间
③根据题意,将变量从0开始的时候执行,一直执行到n,然后计算其执行次数
2.例题
计算下列递归算法的空间复杂度
分析:
①将此递归算法分成两类,分别算空间。当为递归停止的条件时,即k=n-1,这一类的空间复杂度为1,因为此时一共只调用了一次函数fun(),而一个fun()里面有一个空间;当满足递归条件时,执行次数为1+S(n,k+1)
②计算当从n=0开始时,空间复杂度的变化
解题:
第一步
第二步
另外
如果是非递归算法的空间与时间复杂度的计算,则不需要这么复杂,直接按照之前做的笔记的方法即可,笔记即在了纸质笔记本上
数据结构:递归算法时间复杂度与空间复杂度计算方法相关推荐
- 【数据结构】---时间复杂度与空间复杂度
时间复杂度与空间复杂度 引言 一.O渐进表示法(重点) 二.时间复杂度(必考点) 1.定义 2.常见的时间复杂度有 3.计算方法 4.最坏时间复杂度和平均时间复杂度 三.空间复杂度(重点) 1.定义 ...
- 【数据结构】时间复杂度和空间复杂度的计算
目录 一.数据结构 1.什么是数据结构 2.什么是算法 3.数据结构和算法的重要性 4.如何学好数据结构和算法 二.算法效率 三.时间复杂度 1.时间复杂度的概念 2.时间复杂度的表示方法 3.算法复 ...
- 数据结构之时间复杂度和空间复杂度
数据结构入门 文章目录 数据结构入门 前言 一.时间复杂度 1.定义 2.大O的渐进表示法 3.例题 1)Func3 2)冒泡排序 3)二分查找 4)阶乘递归 5)斐波那契递归 二.空间复杂度 1.定 ...
- <数据结构>时间复杂度及空间复杂度
目录 一.概念 1.1.算法效率 1.2.时间复杂度 1.3.空间复杂度 二.计算 2.1.大O的渐进表示法 2.2.时间复杂度计算 例题: 2.3.空间复杂度计算 例题 三.有复杂度要求的习题 一. ...
- 【数据结构】—时间复杂度or空间复杂度以及基础题目练习
小菜坤日常上传gitee代码:https://gitee.com/qi-dunyan ❤❤❤ 个人简介:双一流非科班的一名小白,期待与各位大佬一起努力! 推荐网站:cplusplus.com 目录 前 ...
- 【数据结构】时间复杂度和空间复杂度
文章目录 前言 1. 什么是数据结构 2. 什么是算法 正文 1. 算法效率 1.1 如何衡量一个算法的优劣 1.2 算法的复杂度 2. 时间复杂度 2.1 定义 2.2 计算 2.3 大O的渐进表示 ...
- 递归算法时间复杂度和空间复杂度分析与举例
文章目录 前言 1.递归算法性能分析公式 1.1 时间复杂度计算公式 1.2 空间复杂度计算公式 1.3 例子 1.3.1 暴力算法 1.3.2 递归算法 1.3.3 优化递归算法 总结 前言 根据代 ...
- 【数据结构】时间复杂度_空间复杂度
作者:旧梦拾遗186 专栏:数据结构成长日记 每日励志: 如果有一天,你的努力配得上你的梦想,那么你的梦想也绝对不会辜负你的努力. 前言: 小编带大家来学习数据结构中的复杂度问题. 目录 1.算法效率 ...
- 408考研数据结构复习-时间复杂度与空间复杂度-附统考真题
文章目录 一.时间复杂度 二.空间复杂度 三.相关题目 一.时间复杂度 一个语句的频度是指该语句在算法中被重复执行的次数.算法中所有语句的频度之和记为T(n),它是该算法问题规模n的函数,时间复杂度主 ...
最新文章
- model.fit以及model.fit_generator区别及用法
- 转大神的中国剩余定理
- 高速串行总线系列(5)总线的各种基础问题
- 直接点不玩虚的--启明云端千元现金红包、50pcs开发板直播现场拿走不谢
- Linux的scan命令,linux的scan命令
- 元宇宙综观—愿景、技术和应对
- 关于BEA-000402和BEA-000438(没有进程来读取写入管道的数据)
- Cookie 版购物车
- 2019寒假作业一:PTA7-1 打印沙漏
- 深度补全(一)-论文阅读-翻译(Depth Map Prediction from a Single Image using a Multi-Scale Deep Network)
- 微信小程序怎么开店?怎么开一个小程序店铺
- WIN7无法被远程桌面问题
- ORB-SLAM3安装遇到的问题及解决
- CSS ::backdrop
- 父母不会用智能机?这几个功能可要教会他们
- 使用win10自带录屏软件录制视频
- 不上架App Store怎么安装到非越狱苹果手机使用
- 【黏住用户的不是小红书,而是它背后的那些人】
- 计算机注销之后一直黑屏,Win7旗舰版电脑注销完黑屏怎么解决?
- win10定时关机c语言,win10定时关机在哪?win10设置定时关机的三种方法