时间复杂度分析

本文将从什么时候时间复杂度分析,为什么及如何分析做记录。

什么是时间复杂度分析

1.数据结构和算法解决是“如何让计算机更快时间、更省空间的解决问题”。
2.因此需从执行时间和占用空间两个维度来评估数据结构和算法的性能。
3.分别用时间复杂度和空间复杂度两个概念来描述性能问题,二者统称为复杂度。
4.复杂度描述的是算法执行时间(或占用空间)与数据规模的增长关系。

时间复杂度就是通过假定CPU上单条指令执行固定时间,在代码中粗略估算代码执行次数,来统计整段代码的执行效率。是一种粗略的统计方法,其结论并不精准。另外,可称作 时间渐近复杂度,衡量的是代码在不同宿主执行环境中的时间趋势。对应的空间复杂度也同理。

为什么要做时间复杂度分析?

这是一种理论上低成本(几分钟)的代码效率分析方法。特点就是可忽略宿主环境差异(系统差异,硬件差异等),具有一定的理论指导意义。同样的,一些性能测试,也能够起到同样的作用,但性能测试严重依赖具体的宿主环境,二者之间相辅相成。时间复杂度分析更是一种高质量代码保证的思维方式和视角。

如何做时间复杂度分析?

O分析法

加法法则

顺序代码片段中,取其数量级最高的。

乘法法则

嵌套代码中

合并法则

O(m) + O(n)

最好、坏,平均,均摊时间复杂度

这4个概念是解决 时间复杂度依赖输入数据的不确定性引起的复杂度不确定的问题的。

如何掌握

熟能生巧,大量分析即可。

posted on 2019-07-08 23:05  jfunny  阅读(163)  评论(0编辑  收藏  举报

导航