Java教程

数据结构-复杂度分析01

本文主要是介绍数据结构-复杂度分析01,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

数据结构-复杂度分析01

分类:

常量阶O(1)

对数阶O(logn)

线性阶O(n)

线性对数阶O(nlogn)

平方阶O(n²)

立方阶O(n³)

k次方阶O(nk)

  • 非多项式量级,NP问题

指数阶O(2的n次方)

阶乘阶O(n!)

总结

复杂度也叫渐进复杂度,包括时间复杂度和空间复杂度,用来分析算法执行效率与数据规模之间的增长关系,可以粗略地表示越高阶复杂度的算法,执行效率越低

img

分类

最好情况时间复杂度

最坏情况时间复杂度

最好情况时间复杂度就是,在最理想的情况下,执行这段代码的时间复杂度。就像我们刚刚讲到的,在最理想的情况下,要查找的变量x正好是数组的第一个元素,这个时候对应的时间复杂度就是最好情况时间复杂度。

同理,最坏情况时间复杂度就是,在最糟糕的情况下,执行这段代码的时间复杂度。就像刚举的那个例子,如果数组中没有要查找的变量x,我们需要把整个数组都遍历一遍才行,所以这种最糟糕情况下对应的时间复杂度就是最坏情况时间复杂度。

平均情况时间复杂度

均摊时间复杂度

这篇关于数据结构-复杂度分析01的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!