直接用python代码的形式来看
# 问题
# a + b + c = 1000
# a*a + b*b = c*c
# 求 a b c
在以上问题求解的基础上,在此实现了三种算法,实现代码和输出结果以及算法复杂度T如下所示:
方法一
import time
# 方法一
start_time = time.time()
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))
end_time = time.time()
print('method_1 cost time is : %d s'%(end_time-start_time))
print('finished method 1 ')
输出结果
a, b, c: 0 500 500
a, b, c: 200 375 425
a, b, c: 375 200 425
a, b, c: 500 0 500
method_1 cost time is : 132s
finished method 1
可以看出消耗时间上有132秒,method 1 时间复杂度为 T(n) = O(n^3)
方法二
# 方法二
start_time = time.time_ns()
fo