您的位置:首页 > 其它

直接插入排序

2012-09-13 22:03 169 查看
 顾名思义, 直接插入排序就类似于我们打扑克牌时, 一边摸牌, 一边理牌。先拿第一张牌在手上, 再拿第二张牌时, 我们比较一下大小, 才知道是
把牌插入左边还是右边, 下面摸牌都是类似的了。

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

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

 

/**
*  对顺序表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]; // 插入
}
}

}


 

 

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: