c++版
void Print(int A[],int len)
{
for(int i=0;i<len;i++)
{
cout<<A[i]<<" ";
}
cout<<endl;
}
void InsertSort(int A[], int len)
{
int i,j,temp;
for(i=1;i<len;i++)
{
temp = A[i];
j = i-1;
while(A[j]>temp&&j>=0)
{
A[j+1] = A[j];
j--;
}
A[j+1] = temp;
cout<<"第"<<i<<"趟排序 ";
Print(A,6);
}
}
void main()
{
int A[]={1,2,3,6,5,4};
cout<<"原始序列 ";
Print(A,6);
InsertSort(A,6);
cout<<"排序后序列 ";
Print(A,6);
}
输出结果:
原始序列 2 3 6 5 4 1
第1趟排序 2 3 6 5 4 1
第2趟排序 2 3 6 5 4 1
第3趟排序 2 3 5 6 4 1
第4趟排序 2 3 4 5 6 1
第5趟排序 1 2 3 4 5 6
排序后序列 1 2 3 4 5 6