在此问题中,必须使用选择方法进行排序,按从小到大的顺序对给定的n个整数进行排序并输出排序中每个步骤的中间结果。
要选择排序算法,请执行以下操作:
步骤0 )在n个未排序的(a[0]a[n1] )中找到最小数量,并将其交换为a[0];
步骤1 )在剩馀的未排序的n1的个数(a[1]a[n1] )中找到最小的个数,并将其交换为a[1];
.
步骤k :在剩下的未排序的NK的个数(a[k]a[n1] )中找到最小的个数,并将其交换为a[k];
.
步骤N2 :在剩下的两个未排序的个数(a[n2]A[N1] )中找到最小的个数,并将其交换为A[N2]。
输入法:在第一行输入10或更小的正整数n。 第二行给出n个整数,之间用空格分隔。
输出格式:将排序中相应步骤的中间结果(即每个步骤之后的a[0]a[n1]的值)输出到每行。 相邻数字之间有空格,行尾不要有多余的空格。
#includestdio.hintmain((intn,x; int i,j,k; scanf('%d ',n ); int arr[n]; for(I=0; i n; I ) Scanf('%d”,arr[i]; (for ) I=0; i n - 1; I ) for(j=I1; j n; j () if ) arr[I]arr[j] ) {x=arr[j]; arr[j]=arr[i]; arr[i]=x; (for ) k=0; k=n; k () if ) k==n ) ) printf ) (n ); }else{printf('%d ',arr[k] ); }}break; } }返回0; }