近日数据结构的学习

想到枚举法 a=0~1000  b=0~1000  c=0~1000

最low 这边相当于迭代了3次 再加上一个判断和一个print操作  O(n^3*2) 

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

相对好的 O((n^2)*3)

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,b,c:%d,%d,%d',(a,b,c))

 觉得一个程序跑的速度一个是相对应的计算量的问题,也可能就机器配置的问题

大O表示法:  取一个渐近函数  把相应函数进行一个相应表述式 去掉旁支末节,就把最后的结果叫做大O表示的时间复杂度

顺序

循环

条件

猜你喜欢

转载自www.cnblogs.com/jinpan/p/11117637.html