今天学习了第一阶段的“复杂度分析”,我的收获有:
为什么要做复杂度分析?
专栏:
执行效率是算法一个非常重要的考量指标。
那如何来衡量你编写的算法代码的执行效率呢?这里就要用到我们今天要讲的内容:时间、空间复杂度分析。
平时工作这业务代码很多时候可能并不会在意一些软件性能,其实这恰恰是最重要的东西,都是写代码,你写的比其他人好在哪里呢?性能测试会给出一个指标,做好性能优化是高级程序员的必备技能而复杂度分析则是做好性能优化的必备条件。
专栏中给出了一些方法值得学习。
1.时间复杂度
如何分析一段代码的时间复杂度?
- 只关注循环执行次数最多的一段代码
- 加法法则:总复杂度等于量级最大的那段代码的复杂度
- 乘法法则:嵌套代码的复杂度等于嵌套内外代码复杂度的乘积
几种常见时间复杂度实例分析
2.空间复杂度
时间复杂度的全称是渐进时间复杂度,表示算法的执行时间与数据规模之间的增长关系。类比一下,空间复杂度全称就是渐进空间复杂度(asymptotic space complexity),表示算法的存储空间与数据规模之间的增长关系。
此外还复习了数学公式,数学真的是基础,勿忘它。
本文由【极客时间】专栏《数据结构与算法之美》学习得来。
网友评论