直接插入排序

来源:互联网 发布:java入门书籍pdf下载 编辑:程序博客网 时间:2024/06/17 01:43
 顾名思义, 直接插入排序就类似于我们打扑克牌时, 一边摸牌, 一边理牌。先拿第一张牌在手上, 再拿第二张牌时, 我们比较一下大小, 才知道是

把牌插入左边还是右边, 下面摸牌都是类似的了。

   因此直接插入排序的过程为: 先将序列中的第一个记录看作是有序的子序列,  然后从第二个记录起逐个进行插入, 直至整个序列变为

按关键字递增的有序序列为止。


 

/***  对顺序表L作直接插入排序**/void InsertSort(SqList *L){int i, j;for (i = 2; i < L->length; i++){if (L->r[i+1] < L->r[i]){L->r[0] = L->r[i]; // 哨兵for (j=i-1; L->r[j] > L->r[0]; j--){L->r[j+1] = L->r[j]; // 记录后移}L->r[j+1] = L->r[0]; // 插入}}}