一、常见的时间复杂度
二、最坏情况和平均情况
- 最坏情况运行时间是一种保证,那就是运行时间将不会再坏了
- 平均时间是所有情况中最有意义的,因为它是期望的运行时间。
-
对算法的分析,一种方法是计算所有情况的平均值,这种时间复杂度的计算方法称为时间复杂度。另一种方法是计算最坏情况下的时间复杂度,这种方法称为最坏时间时间复杂度。
一般没有特殊说明的情况下,都是指最坏时间复杂度。
三、算法空间复杂度
- 算法的空间复杂度通过计算算法所需的存储空间实现,算法空间复杂度的计算公式记作:S(n) = O(f(n)),其中,n为问题的规模,f(n)为语句关于n所占存储空间的函数.
一般情况下,一个程序在机器上执行时,除了需要存储程序本身的指令、常数、输入数据外,还需要存储对数据操作的存储单元。
通常,我们都使用“时间复杂度”来指运行时间的需求,使用“空间复杂度”指空间需求。当不用限定词地使用“复杂度”时,通常都是指时间复杂度。
结尾语:
很多学生,学了四年计算机专业,很多程序员,做了很长时间的编程工作,却始终都弄不明白算法的时间复杂度的估算,这是很可悲的一件事。因为弄不清楚,所以也就从不深究自己的代码是否效率低下,是不是可以通过优化让计算机更加快速高效。