您的位置:首页 > 其它

算法之插入排序——直接插入排序

2016-12-31 18:17 330 查看
    我们今天来说一下插入排序的直接插入排序。

    直接插入排序是一种最简单的插入排序。它的基本思想是一次将每个记录插入到一个已排好序的有序表中去,得到一个新的有序表。

    直接插入排序的过程:



他的算法如下:

void InsertSort(SqList &L){
//对顺序表L进行直接插入排序
for (i=2;i<=L.length;i++){ //从第2个元素起进行插入
L[0]=L[i]; //第i个元素复制为岗哨
j=i-1; //j为岗哨前元素个数,即岗哨与之比较的个数
while (L[0].key<L[j].key) //第j个元素与岗哨进行比较,至值不大于岗哨时
{ //前i-1个数都是从小到大的有序序列,所以只要当前比较的数比岗哨大,就把这个数后移一位
L[j+1]=L[j];
j--;
}
L[j+1]=L[0]; //将第i个记录插入到序列中
}
if()
}直接插入排序是一种稳定的算法,他的空间复杂度为O(1),平均和最坏情况的时间复杂度为O(N2),最好情况是O(N)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: