请编写一个程序,用插入排序法将包含N个元素的数列A按升序排列。程序中需要包含上述伪代码所表示的算法。为检验算法的执行过程,请输出各计算步骤的数组(完成输入后的数组,以及每次i自增后的数组)。代码如下:
#include<stdio.h>
/*按顺序输出数组元素*/
void trace(int A[],int N){
int i;
for(i = 0;i<N;i++){
if(i>0)printf(" ");/*在相邻元素之间输出1个空格*/
printf("%d",A[i]);
}
printf("\n");
}
/*插入排序(0起点数组)*/
void insertionSort(int A[],int N){
int j,i,v;
for(i = 1;i<N;i++){
v = A[i];
j = i-1;
while(j>=0&&A[j]>v){
A[j+1] = A[j];
j--;
}
A[j+1]=v;
trace(A,N);
}
}
int main(){
int N,i,j;
int A[100];
scanf("%d",&N);
for(i = 0;i<N;i++) scanf("%d",&A[i]);
trace(A,N);
insertionSort(A,N);
return 0;
}