Selection sort in Java Max-min sorting

Let's say that an array is max-min sorted if the first element of the array is the maximum element, the second is the minimum, the third is the second maximum and so on. Modify Selection sort such that it can be used for max-min sorting.

Input: the first line contains a number nn — the length of an input array. The next line contains nn numbers — the elements of the array.

Output: a max-min sorted input array.

Sample Input 1:

5
1 2 3 4 5

Sample Output 1:

5 1 4 2 3

Sample Input 2:

6
3 1 2 5 4 7

Sample Output 2:

7 1 5 2 4 3
import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = Integer.parseInt(scanner.nextLine());
        int[] array = Arrays.stream(scanner.nextLine().split("\\s+"))
            .limit(n)
            .mapToInt(Integer :: parseInt)
            .toArray();
        Arrays.stream(selectionSort(array)).forEach(i -> System.out.print(i + " "));
    }

    private static int[] selectionSort(int[] array) {

        boolean forMax = true;
        for (int i = 0; i < array.length - 1; i++) {
            int index = i;
            for (int j = i + 1; j < array.length; j++) {
                if (forMax ? array[index] < array[j] : array[index] > array[j]) {
                    index = j;
                }
            }
            forMax = !forMax;
            int temp = array[index];
            array[index] = array[i];
            array[i] = temp;

        }
        return array;
    }
}
上一篇:Feature selection in machine learning


下一篇:java – 单击时创建一个带有可选行的ListView /更改ListView行的背景颜色