题目描述
快速排序排序的划分模拟:将一正整数序列{K1,K2,...,K9}重新排列成一个新的序列。新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(右面)。
输入
输入有多行,第一行为N表示行数,每行9个整数.
输出
输出N行(不超过100行),按要求进行排序的结果.
样例输入复制
2 6 8 9 1 2 5 4 7 3 3 5 8 9 1 2 6 4 7
样例输出复制
3 4 5 2 1 6 8 9 7 2 1 3 5 8 9 6 4 7
代码如下:
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
int n=cin.nextInt();
while(n-->0) {
int[] a=new int[9];
int[] b=new int[9];
int[] c=new int[9];
for(int i=0;i<9;i++) {
a[i]=cin.nextInt();
}
int t=1;int s=0;;
for(int j=0;j<a.length;j++) {
if(a[j]>a[0]) {
b[t]=a[j];
t++;
}else {
c[s]=a[j];
s++;
}
}
for(int i=s-1; i>=0; i--)
System.out.print(c[i]+" ");
for(int i=1; i<t; i++)
if(i==t-1)
System.out.print(b[i]+" ");
else
System.out.print(b[i]+" ");
}
}
}