如何计算算法的复杂度算法复杂度那些事

为什么要关心时间复杂度和空间复杂度?

数据结构和算法本身解决的是“快”和“省”的问题,即如何让代码运行得更快,如何让代码更省存储空间。所以,执行效率是算法一个非常重要的考量指标。

算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。

那么我们应该如何去衡量不同算法之间的优劣呢?

主要还是从算法所占用的「时间」和「空间」两个维度去考量。

  • 时间维度:是指执行当前算法所消耗的时间,我们通常用「时间复杂度」来描述。
  • 空间维度:是指执行当前算法需要占用多少内存空间,我们通常用「空间复杂度」来描述。

因此,评价一个算法的效率主要是看它的时间复杂度和空间复杂度情况。然而,有的时候时间和空间却又是「鱼和熊掌」,不可兼得的,那么我们就需要从中去取一个平衡点。

3a3f1c14e5b517da950cfe18df2b910f-1-1

 

时间复杂度

71a2dfe77d8f8b1124682b8cbac74470-2

 

6391184422ecbdc8aaa13bde5e682497-1

b243dd5c6119c41867f168604475c874-1

 

时间复杂度曲线

 

9297993ca98df1ac8becf0aee3f9822c-1

1fe2c3ff4104970cfb88c05caf07d5db-1-1上图来源于:https://www.bigocheatsheet.com/

递归如何计算时间复杂度

0fd5b47b42fa5861f83daf1587de400d-1

10288f49785b76bf3d6c2b2e6b84c927-1

常用算法时间复杂度

5f398d73ab69c855b3a5dcd6ef818dd9-1-1

 

 

参考摘抄来源:

截图来源:
视频:《算法面试通关40讲》
作者:覃超
链接:https://time.geekbang.org/course/intro/100019701


文章:《时间复杂度和空间复杂度》
作者:快乐~ 
原文:https://www.cnblogs.com/chenjinxinlove/p/10038919.html

文章:《算法的时间与空间复杂度(一看就懂)》
作者:不止思考(奎哥)
原文:https://zhuanlan.zhihu.com/p/50479555
© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容