>插入排序
基本思想:每一步将一个待排序的对象,按照其关键码大小,插入到前面已经排好序的一组对象的适当位置上,直到对象全部插入为止。
>>插入排序的种类:根据查找插入位置的不同
- 顺序法定位插入位置 —— 直接插入排序
- 二分法定位插入排序 —— 二分插入排序
- 缩小增量多遍插入排序 —— 希尔排序
void InsertSOrt(SqList &L)
{
for(int i = 2; i <= l.length; i++) //从第二位开始
{
if(L.r[i] < l.r[i-1]) //需要向前移动
{
L.r[0] = L.r[i]; //设置哨兵
for(int j = i-1; L.r[0] < L.r[j])
{
L.r[j+1] = L.r[j]; //整体后移
}
L.r[j+1] =L.r[0]; //插到正确的位置,[j]位元素已经<[0],插在后一位
}
}
}