Ⅰ.递归算法求时间复杂度步骤


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开始时,空间复杂度的变化

解题:
第一步

第二步


另外


如果是非递归算法的空间与时间复杂度的计算,则不需要这么复杂,直接按照之前做的笔记的方法即可,笔记即在了纸质笔记本上

数据结构:递归算法时间复杂度与空间复杂度计算方法相关推荐

  1. 【数据结构】---时间复杂度与空间复杂度

    时间复杂度与空间复杂度 引言 一.O渐进表示法(重点) 二.时间复杂度(必考点) 1.定义 2.常见的时间复杂度有 3.计算方法 4.最坏时间复杂度和平均时间复杂度 三.空间复杂度(重点) 1.定义 ...

  2. 【数据结构】时间复杂度和空间复杂度的计算

    目录 一.数据结构 1.什么是数据结构 2.什么是算法 3.数据结构和算法的重要性 4.如何学好数据结构和算法 二.算法效率 三.时间复杂度 1.时间复杂度的概念 2.时间复杂度的表示方法 3.算法复 ...

  3. 数据结构之时间复杂度和空间复杂度

    数据结构入门 文章目录 数据结构入门 前言 一.时间复杂度 1.定义 2.大O的渐进表示法 3.例题 1)Func3 2)冒泡排序 3)二分查找 4)阶乘递归 5)斐波那契递归 二.空间复杂度 1.定 ...

  4. <数据结构>时间复杂度及空间复杂度

    目录 一.概念 1.1.算法效率 1.2.时间复杂度 1.3.空间复杂度 二.计算 2.1.大O的渐进表示法 2.2.时间复杂度计算 例题: 2.3.空间复杂度计算 例题 三.有复杂度要求的习题 一. ...

  5. 【数据结构】—时间复杂度or空间复杂度以及基础题目练习

    小菜坤日常上传gitee代码:https://gitee.com/qi-dunyan ❤❤❤ 个人简介:双一流非科班的一名小白,期待与各位大佬一起努力! 推荐网站:cplusplus.com 目录 前 ...

  6. 【数据结构】时间复杂度和空间复杂度

    文章目录 前言 1. 什么是数据结构 2. 什么是算法 正文 1. 算法效率 1.1 如何衡量一个算法的优劣 1.2 算法的复杂度 2. 时间复杂度 2.1 定义 2.2 计算 2.3 大O的渐进表示 ...

  7. 递归算法时间复杂度和空间复杂度分析与举例

    文章目录 前言 1.递归算法性能分析公式 1.1 时间复杂度计算公式 1.2 空间复杂度计算公式 1.3 例子 1.3.1 暴力算法 1.3.2 递归算法 1.3.3 优化递归算法 总结 前言 根据代 ...

  8. 【数据结构】时间复杂度_空间复杂度

    作者:旧梦拾遗186 专栏:数据结构成长日记 每日励志: 如果有一天,你的努力配得上你的梦想,那么你的梦想也绝对不会辜负你的努力. 前言: 小编带大家来学习数据结构中的复杂度问题. 目录 1.算法效率 ...

  9. 408考研数据结构复习-时间复杂度与空间复杂度-附统考真题

    文章目录 一.时间复杂度 二.空间复杂度 三.相关题目 一.时间复杂度 一个语句的频度是指该语句在算法中被重复执行的次数.算法中所有语句的频度之和记为T(n),它是该算法问题规模n的函数,时间复杂度主 ...

最新文章

  1. model.fit以及model.fit_generator区别及用法
  2. 转大神的中国剩余定理
  3. 高速串行总线系列(5)总线的各种基础问题
  4. 直接点不玩虚的--启明云端千元现金红包、50pcs开发板直播现场拿走不谢
  5. Linux的scan命令,linux的scan命令
  6. 元宇宙综观—愿景、技术和应对
  7. 关于BEA-000402和BEA-000438(没有进程来读取写入管道的数据)
  8. Cookie 版购物车
  9. 2019寒假作业一:PTA7-1 打印沙漏
  10. 深度补全(一)-论文阅读-翻译(Depth Map Prediction from a Single Image using a Multi-Scale Deep Network)
  11. 微信小程序怎么开店?怎么开一个小程序店铺
  12. WIN7无法被远程桌面问题
  13. ORB-SLAM3安装遇到的问题及解决
  14. CSS ::backdrop
  15. 父母不会用智能机?这几个功能可要教会他们
  16. 使用win10自带录屏软件录制视频
  17. 不上架App Store怎么安装到非越狱苹果手机使用
  18. 【黏住用户的不是小红书,而是它背后的那些人】
  19. 计算机注销之后一直黑屏,Win7旗舰版电脑注销完黑屏怎么解决?
  20. win10定时关机c语言,win10定时关机在哪?win10设置定时关机的三种方法

热门文章

  1. 严重的编程错误或致文件删除、黑客使用新恶意软件逃避检测|1月26日全球网络安全热点
  2. js 实现繁体和简体之间的转换
  3. CMMI认证是什么?为什么这些IT类企业都在申请?
  4. 抖音前端团队国际化是怎么做的?
  5. java高级架构师工资多少啊,附源代码
  6. 【压缩感知合集3】压缩感知的背景与意义
  7. 【php】php开发环境的搭建
  8. #define的定义用法
  9. Java 环境JDK下载、安装以及环境变量配置详细图解
  10. Docker之操作系统Alpine