-
输入一系列整数,将其中最大的数挑出,并将剩下的数进行排序。
import java.util.Scanner;
public class Main{
/**
* @param args
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while( scanner.hasNext() ){
int n = scanner.nextInt();
int num[] = new int[n];
for (int i = 0; i < n; i++) {
num[i] = scanner.nextInt();
}
quickSort(0,n-1,num);
System.out.println(num[n-1]);
if(n == 1){
System.out.println("-1");
continue;
}
for (int i = 0; i < num.length - 1; i++) {
if(i == num.length - 2){
System.out.println(num[i]);
}else{
System.out.print(num[i]+" ");
}
}
}
}
private static void quickSort(int low, int high, int[] array) {
int key = array[low];
int begin = low;
int end = high;
while(low < high){
while( array[low] <= key && low < high){
low++;
}
while( array[high] > key && low < high){
high--;
}
if(low < high){
int temp = array[low];
array[low] = array[high];
array[high] = temp;
}
}
if( array[low] < key){
array[begin] = array[low];
array[low] = key;
}
if(begin < low-1){
quickSort(begin, low-1, array);
}
if(low < end){
quickSort(low, end, array);
}
}
}
/**************************************************************
Problem: 1185
User: yihukurama
Language: Java
Result: Accepted
Time:980 ms
Memory:81224 kb
****************************************************************/
题目描述:
-
输入:
-
输入第一行包括1个整数N,1<=N<=1000,代表输入数据的个数。接下来的一行有N个整数。
-
输出:
-
可能有多组测试数据,对于每组数据,第一行输出一个整数,代表N个整数中的最大值,并将此值从数组中去除,将剩下的数进行排序。第二行将排序的结果输出。
-
样例输入:
-
4 1 3 4 2
-
样例输出:
-
4 1 2 3
-
提示:
-
如果数组中只有一个数,当第一行将其输出后,第二行请输出"-1"。