2024-02-10 09:21:54
时间复杂度其实还分为 平均时间复杂度 、 最好时间复杂度 和 最坏时间复杂度 。对于一个算法来说,往往有很多特殊情况,一般而言,我们所说的时间复杂度都指 最坏时间复杂度 ,因为在最坏的情况下,我们才能够评估一个算法的性能最差会到什么地步,这样我们才能更好地选择相应的算法去解决问题。
目前通用的时间复杂度的表示法是“ 大O表示法 ”,但其实同时还存在其他的符号。
这里有一张图,可以直观看出各种时间复杂度的好坏:
时间复杂度最好的算法是O(1),即有限次数内得到结果。当然,一个算法能不能达到 O(1) 的时间复杂度,要看具体情况,我们当然希望程序的性能能够达到最优,所以算法的时间复杂度能够低于 O(n 2 ) 一般来说已经很不错了。不要忘了,算法的性能除考虑时间复杂度外还要考虑 空间复杂度 ,在大多数情况下往往需要在时间复杂度和空间复杂度之间进行权衡。