您的位置:首页 > 其它

直接插入排序

2015-08-21 17:08 225 查看
1,查找出L(i)在L[1...i-1]中的插入位置K2,将L[k...i-1]中的所有元素后移一个位置3,将L(i)复制到L(k)
void InsertSort(ElemType A[], int n)

{

int i, j;

for(i=2; i<=n; i++)//依次将A[2]~A
插入到前面已排序序列

{

if(A[i].key)<A[i-1].key)//如果A[i]的关键码小于其前驱,须将A[i]插入有序表

	{

A[0]=A[i];//复制为哨兵,A[0]不存放元素

for(j=i-1; A[0].key<A[j].key; --j)//从后往前查找待插入位置

{

A[j+1]=A[j];//向后挪位

}

A[j+1]=A[0];//复制到插入位置

}

}

}

[/code]时间复杂度O(n^2)稳定排序

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