目录

1.什么是时间复杂度和空间复杂度

1.1时间复杂度

1.2空间复杂度

2.如何计算时间复杂度和空间复杂度

2.1使用大O阶方法

2.2计算一些常用算法的时间复杂度

2.3计算一些常用算法的空间复杂度

3.对复杂度有要求的算法练习题


1.什么是时间复杂度和空间复杂度

在了解两个复杂度之前,我们先来了解一下 什么是算法的效率。

算法的效率分为两种:  时间效率和空间效率

1. 时间效率被称为时间复杂度,它主要是衡量一个算法的运行速度

2. 空间效率被称为空间复杂度,它主要是衡量一个算法所需要的额外空间

1.1时间复杂度

一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法的时间复杂度。

1.2空间复杂度

空间复杂度是对一个算法的运行过程中临时占用存储空间大小的量度。空间复杂度不是程序占用了多少字节的空间,所以空间复杂度算的是变量个数。

2.如何计算时间复杂度和空间复杂度

2.1使用大O阶方法

在实际中计算空间复杂度时,并不一定要计算精确的执行次数,而只需要 大概执行的次数,所以我们用 大O的渐进表示法。

推导大O阶方法:

1. 用 常数1取代 运行时间中的 所有加法常数.  [O(100)=>O(1)]

2. 在修改后的运行次数函数中,只保留最高阶项 .[O(n*n+2n+10)=>O(n^2)] [O(n+10)=>O(n)]

3. 如果最高阶项存在且不是1,则 去除与这个项目相乘的常数。 得到的结果就是大O阶。

2.2计算一些常用算法的时间复杂度

计算Funcl的时间复杂度 

计算strchar的时间复杂度

2.3计算一些常用算法的空间复杂度

空间复杂度是对一个算法在运行过程中临时占用存储空间大小的量度,计算的是变量个数

时间是累计的,空间是不累计的

循环走了几次,重复利用的是一个空间

计算冒泡排序法的空间复杂度

计算 Factorial的空间复杂度

3.对复杂度有要求的算法练习题

面试题 17.04. 消失的数字 - 力扣(LeetCode) (leetcode-cn.com)

189. 轮转数组 - 力扣(LeetCode) (leetcode-cn.com)

数据结构——时间复杂度和空间复杂度相关推荐

  1. 浅淡数据结构时间复杂度和空间复杂度

    文章目录 前言 1.时间复杂度和空间复杂度的相关介绍 1.为什么要引入时间复杂度和空间复杂度的概念 2.什么是时间复杂度和空间复杂度 2.具体示例分析 1.大O法只保留高阶项 2.一般情况关注的是算法 ...

  2. java数据结构-----时间复杂度、空间复杂度

    文章目录 1.前言 2.算法与时间复杂度.空间复杂度的关系 3.时间复杂度 4.常见时间复杂度举例 5.空间复杂度 6.常见的空间复杂度举例 1.前言 当我们设计一个算法的时候要考虑他的效率,例如,使 ...

  3. 数据结构 | 时间复杂度与空间复杂度

    -

  4. 数据结构 | 时间与空间复杂度就看这篇了【生活经历 + 实例讲解】

    大家好,本文我们将进入数据结构时间复杂度与空间复杂度,希望能带你一破复杂度求解的难关

  5. 数据结构(02)— 时间复杂度与空间复杂度转换

    1. 时间复杂度转化为空间复杂度 常用的降低时间复杂度的方法有递归.二分法.排序算法.动态规划等,降低空间复杂度的核心思路就是,能用低复杂度的数据结构能解决问题,就千万不要用高复杂度的数据结构. ​ ...

  6. Python数据结构与算法笔记(一):时间复杂度与空间复杂度

    学习内容来自清华计算机博士带你学习Python算法+数据结构.目前内容截止到树结构,后续的高级算法以后会补上. 算法概念简述 数据结构:数据存储 时间复杂度 每个电脑配置不一样.同一个程序执行的时间不 ...

  7. 【数据结构入门】算法的时间复杂度和空间复杂度详解

    文章目录 (1)算法效率 (2)时间复杂度的计算 1)什么是时间复杂度 2)大O渐进表示法(估算) 3)时间复杂度计算实例 4)总结 5)一些思考 (3)空间复杂度的计算 (4)常见复杂度对比 本篇前 ...

  8. Java数据结构(1.1):数据结构入门+线性表、算法时间复杂度与空间复杂度、线性表、顺序表、单双链表实现、Java线性表、栈、队列、Java栈与队列。

    数据结构与算法入门 问题1:为什么要学习数据结构          如果说学习语文的最终目的是写小说的话,那么能不能在识字.组词.造句后就直接写小说了,肯定是不行的, 中间还有一个必经的阶段:就是写作 ...

  9. 数据结构与算法之时间复杂度与空间复杂度

    ⭐️前面的话⭐️ 本篇文章带大家认识数据结构与算法基础,时间复杂度与空间复杂度.算法效率分析分为两种:第一种是时间效率,第二种是空间效率.时间效率被称为时间复杂度,而空间效率被称作空间复杂度. 时间复 ...

最新文章

  1. 拼音开头有什么字_excel查找函数应用:如何提取姓名的拼音首字母
  2. mysql 授权管理
  3. ASP.NET -- 缓存技术(1)
  4. keras冻结_【连载】深度学习第22讲:搭建一个基于keras的迁移学习花朵识别系统(附数据)...
  5. 蓝桥杯 历届试题 合根植物(并查集)
  6. angularjs与PHP,我应该混合AngularJS与PHP框架吗?
  7. 16岁成为全栈开发者:我从开发游戏到写加密货币投资机器人的心路历程
  8. Reparameterization Trick
  9. ImageDataGenerator生成器的flow,flow_from_directory用法
  10. axure导入的元件库不见了_Axure教程丨制作自己的Axure元件库
  11. promoter:启动子预测程序(PPPs)软件现状及分析
  12. w10 计算机配置管理模板,win10老是配置更新,设置这个,让你无处可更...
  13. 跨界程序员の一 中文GB2312字库下载
  14. 计算机三级网络技术 = =
  15. linux与pe到移动硬盘,PE下找不到移动硬盘?不用怕
  16. Win7显示器颜色不正常的原因及解决方法
  17. WSDM-爱奇艺:用户留存预测挑战赛 线上0.865
  18. hostname -I(大写i)显示主机IP
  19. c 矩阵变matlab矩阵,怎么把一个函数变成矩阵形式
  20. Flutter 项目的闪屏页方案

热门文章

  1. EasyNVR无插件流媒体服务器前端技术防止重复提交的方法
  2. 计算机视觉方面的三大国际会议及期刊会议影响因子
  3. pandas 数据筛选与索取
  4. Makefile.win recipe for target ‘C:/Users/acer/Desktop/xxx.o‘ failed
  5. html去除图片边框颜色,在PS中怎样做,可以将图片去除所有颜色,只留边框(描边)?...
  6. mamp python mysql_MAMP中Python安装MySQLdb
  7. 利用各组样本例数,均数、标准差如何进行方差分析-R软件?
  8. 【陈吉平】《构建oracle高可用环境》前言
  9. 二叉树的后序遍历-递归和非递归算法
  10. 二叉树的后序遍历的非递归实现算法