为什么要关心时间复杂度和空间复杂度?
数据结构和算法本身解决的是“快”和“省”的问题,即如何让代码运行得更快,如何让代码更省存储空间。所以,执行效率是算法一个非常重要的考量指标。
算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。
那么我们应该如何去衡量不同算法之间的优劣呢?
主要还是从算法所占用的「时间」和「空间」两个维度去考量。
- 时间维度:是指执行当前算法所消耗的时间,我们通常用「时间复杂度」来描述。
- 空间维度:是指执行当前算法需要占用多少内存空间,我们通常用「空间复杂度」来描述。
因此,评价一个算法的效率主要是看它的时间复杂度和空间复杂度情况。然而,有的时候时间和空间却又是「鱼和熊掌」,不可兼得的,那么我们就需要从中去取一个平衡点。
时间复杂度
时间复杂度曲线
上图来源于:https://www.bigocheatsheet.com/
递归如何计算时间复杂度
常用算法时间复杂度
参考摘抄来源: 截图来源: 视频:《算法面试通关40讲》 作者:覃超 链接:https://time.geekbang.org/course/intro/100019701 文章:《时间复杂度和空间复杂度》 作者:快乐~ 原文:https://www.cnblogs.com/chenjinxinlove/p/10038919.html 文章:《算法的时间与空间复杂度(一看就懂)》 作者:不止思考(奎哥) 原文:https://zhuanlan.zhihu.com/p/50479555
© 版权声明
转载请注明出处,并标明原文链接。
本网站尊重知识产权,如有侵权,请及时联系我们删除。
本站所有原创内容仅用于学习和交流目的,未经作者和本站授权不得进行商业使用或盈利行为。
本网站尊重知识产权,如有侵权,请及时联系我们删除。
本站所有原创内容仅用于学习和交流目的,未经作者和本站授权不得进行商业使用或盈利行为。
THE END
暂无评论内容