#算法就是独立解决问题的方法和思想
#对于算法而言,最重要的是思想
#算法导论
#数据结构
算法的五大特性
输入 输出 有穷性(实现思想在有限的步骤内,且在可接受的时间范围之内) 确定性(算法的每一步都有确定的含义) 可行性(代码可执行)
对前面代码进行优化
a + b + c = 1000,当a,b 确定后,那么c = 1000 - a - b
代码:
import time
start_time = time.time()
print(start_time)
def container():
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))
print("finsihed")
container()
end_time = time.time()
use_time =(end_time) - (start_time)
print(use_time)
结果:发现程序快了很多
1513606972.2
a, b, c : 0, 500, 500
a, b, c : 200, 375, 425
a, b, c : 375, 200, 425
a, b, c : 500, 0, 500
finsihed
#对于算法而言,最重要的是思想
#算法导论
#数据结构
算法的五大特性
输入 输出 有穷性(实现思想在有限的步骤内,且在可接受的时间范围之内) 确定性(算法的每一步都有确定的含义) 可行性(代码可执行)
对前面代码进行优化
a + b + c = 1000,当a,b 确定后,那么c = 1000 - a - b
代码:
import time
start_time = time.time()
print(start_time)
def container():
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))
print("finsihed")
container()
end_time = time.time()
use_time =(end_time) - (start_time)
print(use_time)
结果:发现程序快了很多
1513606972.2
a, b, c : 0, 500, 500
a, b, c : 200, 375, 425
a, b, c : 375, 200, 425
a, b, c : 500, 0, 500
finsihed
0.549000024796
思考:针对第一个算法,可以看出第一次算法使用三次嵌套,而第二次只用了两次的嵌套,那么如何衡量算法的优劣问题呢?
算法的执行效率的影响因素:
算法的优劣、执行的环境
单看时间是无法判断算法的优劣的
于是提出的时间复杂度的概念
两个算法基本运算数量是大体是相同的,但是第一个算法的步骤大于第二个步骤的
机器运行总的时间=基本运算数量*每个步骤运算的时间
时间复杂度(T也就是time)就是就是基本数量总额和,描叙算法的效率