首页 > 编程语言 > 详细

算法分析

时间:2020-03-28 10:35:48      阅读:48      评论:0      收藏:0      [点我收藏+]

优化前算法核心部分

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

时间复杂度:

T(n) = O(nnn) = O(n^3)

优化后算法核心部分

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

时间复杂度:

T(n) = O(nn(1+1)) = O(n*n) = O(n^2)

由此可见,我们尝试的第二种算法要比第一种算法的时间复杂度好多的。

算法分析

原文:https://www.cnblogs.com/chao-sir/p/12586103.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!