数据结构——时间复杂度和空间复杂度
目录1.什么是时间复杂度和空间复杂度1.1时间复杂度1.2空间复杂度2.如何计算时间复杂度和空间复杂度2.1使用大O阶方法2.2计算一些常用算法的时间复杂度2.3计算一些常用算法的空间复杂度3.对复杂度有要求的算法练习题1.什么是时间复杂度和空间复杂度在了解两个复杂度之前,我们先来了解一下 什么是算法的效率。算法的效率分为两种: 时间效率和空间效率1. 时间效率被称为时间复杂度,它主要是衡量一个算
目录
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)

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)