算法分析的原则
机器的运算速度影响算法的执行时间
相同的输入规模,实例影响运行
算法分析的工具
# 插入排序:将数组a分为有序和无序的两个部分。前者在左边,后者在右边。开始有序的部分只有a[0],其余都属于无序的部分。
# 每次取出无序部分的第一个(最左边)元素,把它加入有序部分。假设插入合适的位置p,则原p位置及其后面的有序元素都向右移动一个位置,
# 有序部分增加一个元素。一直做下去,直到无序部分没有元素
def insert_sort(l):
for i in range(len(l) - 1):
key = l[i+1] # 无序部分第一个值
index = i
while index >= 0 and l[index] > key:
l[index+1] = l[index]
index -= 1
l[index + 1] = key
return l
# 选择排序:每次从待排序列中选出一个最小值
def select_sort(l):
for i in range(len(l)):
for j in range(i+1, len(l)):
if l[i] > l[j]:
temp = l[i]
l[i] = l[j]
l[j] = temp
return l