#include<stdio.h>
#include<stdlib.h>
typedef int ElementType;
void InsertSort(ElementType a[],int n)
{
ElementType i ,j;
for(i=2;i<n+1;i++)
{
if(a[i]<a[i-1])
{
a[0]=a[i]; //哨兵记录此时需要插入的数据
for(j=i;a[0]<a[j-1];j--)
{
a[j]=a[j-1];
}
a[j]=a[0];
}
}
}
int main()
{
ElementType a[100];
int n;
scanf("%d",&n);
a[0]=-100;
for(ElementType i=1;i<n+1;i++) //i=0处不存放元素,因为a[0]是哨兵的位置
{
scanf("%d",&a[i]);
}
InsertSort(a,n);
printf("排序后的结果是:");
for(ElementType i=1;i<n+1;i++)
{
printf("%d ",a[i]);
}
}
运行效果: