04 | 复杂度分析(下):浅析最好、最坏、平均、均摊时间复杂度

今天我会继续给你讲四个复杂度分析方面的知识点,最好情况时间复杂度(best case time complexity)、最坏情况时间复杂度(worst case time complexity)、平均情况时间复杂度(average case time complexity)、均摊时间复杂度(amortized time complexity)。如果这几个概念你都能掌握,那对你来说,复杂度分析这部分内容就没什么大问题了。

(1)最好情况时间复杂度就是,在最理想的情况下,执行这段代码的时间复杂度。

(2)最坏情况时间复杂度就是,在最糟糕的情况下,执行这段代码的时间复杂度。

(3)平均情况时间复杂度

这个值就是概率论中的加权平均值,也叫作期望值,所以平均时间复杂度全称应该叫 加权平均时间复杂度 或者 期望时间复杂度。

(4)均摊时间复杂度

针对这种特殊的场景,我们引入了一种更加简单的分析方法:摊还分析法,通过摊还分析得到的时间复杂度我们起了一个名字,叫均摊时间复杂度。

尽管很多数据结构和算法书籍都花了很大力气来区分平均时间复杂度和均摊时间复杂度,但其实我个人认为,均摊时间复杂度就是一种特殊的平均时间复杂度,我们没必要花太多精力去区分它们。你最应该掌握的是它的分析方法,摊还分析。至于分析出来的结果是叫平均还是叫均摊,这只是个说法,并不重要。


感谢极客时间: https://time.geekbang.org/column/article/40447

你可能感兴趣的:(04 | 复杂度分析(下):浅析最好、最坏、平均、均摊时间复杂度)