计算方法
请注意:有的情况下,算法中基本操作重复执行的次数还随问题的输入数据集不同而不同。
例
计算这种时间复杂都是分情况而定:主要是求平均时间复杂度即可
- 最坏时间复杂度:指在最坏情况下,算法时间复杂度。
- 平均时间复杂度:指在所有可能输入实例在等概率出现的情况下,算法的期望运行时间。
- 最好时间复杂度:指在最好情况下,算法的时间复杂度。
- 一般总是在考虑在最坏情况下的时间复杂度,以保证算法的运算时间不会比它更长。
- 对于复杂的算法,可以将它分成几个容易估算的部分,然后利用大O加法法则和乘法法则,计算算法的时间复杂度:
a)加法规则
a)乘法规则
算法时间效率的比较
当n取得很大时,指数时间算法和多项式时间算法在所需时间上非常悬殊。
如图
直角坐标系表示
时间复杂度T(n)按数量即递增顺序为:
复杂度=======================================》复杂度高
渐进空间复杂度
空间复杂度:算法所需存储空间的度量,
记作:S(n)=O(f(n)) —— 其中m为问题的规模(或大小)
算法要占据的空间
算法本省要占用的空间,输入/输出,指令,常数,变量等
算法要使用的辅助空间。
例
将一堆数组中的n个数逆序存放到原数组中。