枚举,时间复杂度,大O记法
# 枚举法 --- 就是一个数一个数的试 # 算法的5大特性: # 输入:算法具有0个或多个输入 # 输出:算法至少有一个或多个输出 # 有穷性:算法在有限的步骤后会自动结束而不会无限循环,并且每一步可以在接受的时间内完成。 # 确定性:算法中的每一步都有确定的含义,不会出现二义性 # 可行性:算法的每一步都是可行的,也就是说每一步都能够执行有限的次数完成。 # # 时间复杂度 # 每台机器执行的总时间不同,但是执行的基本运算数量大体相同 # T(n)=N^3*k +c # g(n)=n^3 # T(n)=g(n) g(n)就叫做T(n)的渐进函数 # 把提出来的g(n)叫做时间复杂度的大'o'表示法 # 什么是时间复杂度:T(n)就是时间复杂度
枚举的思想 import time start_time = time.time() for a in range(0,1000): for b in range(0,1000): for c in range(0,1000): if a+b+c==1000 and a**2 + b**2 == c**2: print('a,b,c:%d %d %d'%(a,b,c)) endtime = time.time() print('times:%d'%(endtime-start_time)) print('finished') # import time # start_time = time.time() # 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)) # endtime = time.time() # print('times:%d'%(endtime-start_time)) # print('finished')