python学习 算法初步 最坏时间复杂度

算法完成工作最少需要多少基本操作,最优时间复杂度
算法完成工作最多需要多少基本操作,最坏时间复杂度
算法完成工作平均需要多少基本操作,平均时间复杂度

最优时间复杂度,意义与价值不大,只能反映最乐观的情况,没有参考价值。
最坏时间复杂度,提供了一种保障,表明算法在此程度的基本操作中一定可以完成任务。
平均时间复杂度,时对算法的一个全面评价,它完整全面的反映了这个算法的性质,但又不可以保证每个计算都可以在这个基本操作内完成。
所以,我们主要关心,最坏时间复杂度。

时间复杂度的基本规则
1.基本操作,即只有常数项,认为其时间复杂度为O(1)
2.顺序结构,时间复杂度按加法进行计算
3.循环结构,时间复杂度按乘法进行操作
4.条件结构,时间复杂度取最大值(最复杂的分支)
5.判断一个算法的效率时,往往只需要关注操作数量的最高次项,其他的次要项和常数项可以忽略(大O记法
6.在没有特殊说明的时候,我们分析的算法的时间复杂度都是指最坏时间复杂度
我们再次分析之前的程序:

for a in range(0,1001):
    for b in range(0,1001):
        c = 1000-a -b
        if a**2+b**2==c**2 :
                print('a=%d,b=%d,c=%d'%(a,b,c))

所以根据上述规则,该算法的最坏时间复杂度为:
T(n) = n * n * (1 + max(1,0))
= n^2*2
= O(n^2)

猜你喜欢

转载自blog.csdn.net/IWTK_wcl/article/details/83420838