高级算法设计与分析

高级算法设计与分析
最新回答
白裙红衣

2024-02-10 09:21:54

时间复杂度其实还分为 平均时间复杂度 最好时间复杂度 最坏时间复杂度 。对于一个算法来说,往往有很多特殊情况,一般而言,我们所说的时间复杂度都指 最坏时间复杂度 ,因为在最坏的情况下,我们才能够评估一个算法的性能最差会到什么地步,这样我们才能更好地选择相应的算法去解决问题。

目前通用的时间复杂度的表示法是“ 大O表示法 ”,但其实同时还存在其他的符号。

这里有一张图,可以直观看出各种时间复杂度的好坏:

时间复杂度最好的算法是O(1),即有限次数内得到结果。当然,一个算法能不能达到 O(1) 的时间复杂度,要看具体情况,我们当然希望程序的性能能够达到最优,所以算法的时间复杂度能够低于 O(n 2 ) 一般来说已经很不错了。不要忘了,算法的性能除考虑时间复杂度外还要考虑 空间复杂度 ,在大多数情况下往往需要在时间复杂度和空间复杂度之间进行权衡。