算法的选择理由
1.待排序的数据项数
2.数据项已排好序的程度
3.对数据项取值的可能限制
4.打算采用的存储设备类型
插入排序
适用范围:对少量元素进行排序
伪代码
INSERTION-SORT(A){
for j<- 2 to lenth[A]
key <- A[j];
i=j-1;
while i>0 and key <A[i]
A[i+1]=A[i];
i <- i-1;
A[i] <- key;
}
python 代码
循环不变式验证算法的正确性
初始化:在第一轮迭代开始之前,算法是正确的
保持:如果在某一轮迭代开始之前是正确的,那么下一次的迭代也应该是正确的
终止:迭代结束之后,循环不变式给我们一个有用的性质