直接插入排序c++ (一步一步图解)

本文将一步一步图解简单插入排序的方式

假设顺序表a=[0,5,3,4,6]

直接插入排序代码如下

* 对顺序表L作直接插入排序 */
void InsertSort(SqList *L)
{ 
	int i,j;
	for(i=2;ilength;i++)
	{
		if (L->a[i]a[i-1]) /* 需将L->r[i]插入有序子表 */
		{
			L->a[0]=L->a[i]; /* 设置哨兵 */
			for(j=i-1;L->a[j]>L->a[0];j--)
				L->a[j+1]=L->a[j]; /* 记录后移 */
			L->a[j+1]=L->a[0]; /* 插入到正确位置 */
		}
	}
}

length=5

i=2


直接插入排序c++ (一步一步图解)_第1张图片

直接插入排序c++ (一步一步图解)_第2张图片

i=3

直接插入排序c++ (一步一步图解)_第3张图片


i=4

结束


你可能感兴趣的:(数据结构与算法)