输入一个一维数组,从第二项起,将其插入前面的数列,保持其有序排列。
#include <stdio.h>
#include<stdlib.h>
#define N 100
int main ()
{
int n,i,a[N],j,t;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(j=1;j<n;j++)
{
t=a[j];
for(i=j-1;i>=0;i--)
{
if(t<a[i])
{
a[i+1]=a[i];
}
else break;
}
a[i+1]=t;
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
printf("\n");
}
return 0;
}
//插入代码的程序也可以这样写
for(j=1;j<n;j++)
{
t=a[j];
if(a[j]<a[j-1])
{
for(i=j-1;t<a[i];i--)
{
a[i+1]=a[i];
}
}
}