题目如下:
具体实现代码如下:
import java.util.*;
public class Main {
public static void main(String[] args) {
System.out.println("请输入元素个数:");
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
Scanner sc0 = new Scanner(System.in);
System.out.println("请输入元素k:");
int k = sc0.nextInt();
System.out.println("请输入元素数组:");
List<Integer> list = new ArrayList<>();
int[] arr = new int[N];
for (int i = 0;i < N;i++)
{
Scanner sc1 = new Scanner(System.in);
arr[i] = sc.nextInt();
list.add(arr[i]);
}
//将list分解为两个
List<Integer> list1;
List<Integer> list2;
list1 = list.subList(0,k);
list2 = list.subList(k,N);
list2.sort(Collections.reverseOrder());
//将list1分成两个
List<Integer> list11 = list1.subList(0,(k+1)/2);
List<Integer> list12 = list1.subList((k+1)/2,k);
list12.sort(Collections.reverseOrder());
print(list11);
print(list12);
//将list2分成两个
List<Integer> list21 = list2.subList(0,(k+1)/2);
List<Integer> list22 = list2.subList((k+1)/2,k);
list21.sort(Collections.reverseOrder().reversed());
list22.sort(Collections.reverseOrder());
print(list21);
print(list22);
}
private static void print(List<Integer> list)
{
for (int i = 0;i < list.size();i++)
{
System.out.print(list.get(i)+" ");
}
}
}