【问题输入】输入一行整数,共有n+1个。第一个表示整数个数,其后跟n个待排序整数,空格分隔。
【问题输出】包括n-1行整数。
依次输出第1趟,第2趟,…,第n-1趟插入排序的运行结果。每趟运行结果占一行,空格分隔。
#include<stdio.h>
#include<stdlib.h>
typedef struct
{
int length;
int *elem;
}SqList;
void InsertSort(SqList &L)
{
for(int i=2;i<=L.length;i++)
{
int j;
L.elem[0]=L.elem[i];
for(j=i-1;j>=1&&(L.elem[j]>L.elem[0]);j--)
L.elem[j+1]=L.elem[j];
L.elem[j+1]=L.elem[0];
for(int i=1;i<=L.length;i++)
printf("%d ",L.elem[i]);
printf("\n");
}
}
int main()
{
SqList s;
s.elem=(int *)malloc(100*sizeof(int));
scanf("%d",&s.length);
for(int i=1;i<=s.length;i++) //1-length
scanf("%d",&s.elem[i]);
InsertSort(s);
}