/*插入排序*/
#include<stdio.h>
void put(int a[],int n)//定义输出格式
{
int i;
for(i=0;i<n;i++)
{
if(i>0)printf(" ");
printf("%d",a[i]);
}
printf("\n");
}
void insertionSort(int num[],int a) //插入排序函数
{
int k,y,x;
for(x=1;x<a;x++) //从第二个元素开始(假设第一个元素为已排好序的数)
{
k=num[x]; //保护将要将要进行插入操作的数,防止num[y+1]=num[y];将其更新。
y=x-1;
while(y>=0 && num[y]>k) //y>=0 防止y跳出num[]数组
{
num[y+1]=num[y];
y--;
}
num[y+1]=k;
put(num,a);
}
}
int main()
{
int A[100],i,N;
printf("begin\n");
scanf("%d",&N);
for(i=0;i<N;i++)
{
scanf("%d",&A[i]);
}
put(A,N);
insertionSort(A,N);
return 0;
}
注意:
不能在行尾多输出空格或换行;(解决方法:定义put()函数)