仅对数组中的偶数进行排序,并且不碰几率

时间:2018-12-13 11:53:07

标签: java arrays sorting

所以我有一个整数数组,练习告诉我仅对偶数元素进行排序。我知道可以通过简单地检查每个元素(可能是O(n ^ 2))来轻松实现。
我想做的是编写一个只接受偶数作为参数的比较器,然后使用它对整个数组进行排序。

Comparator<Integer> comp = new Comparator<>() {
        @Override
        public int compare(Integer o1, Integer o2) {
            return o1.compareTo(o2);
        }
    };
Arrays.sort(array, comp));

有什么办法吗? 谢谢

2 个答案:

答案 0 :(得分:1)

我不会尝试创建一个Comparator。似乎更难以实现它。相反,您可以将数组拆分为奇数和偶数。 用ArrayList#add(index,number)

对偶数进行排序,并将奇数添加到它们的先前位置

答案 1 :(得分:0)

public static void sortEven(int[] inputArray) {
    List list = new ArrayList();
    for (int i = 0; i < inputArray.length; i++) {
        if (inputArray[i]%2== 0)
            list.add(inputArray[i]);
    }
    Collections.sort(list);
    int j=0;
    for (int i = 0; i < inputArray.length; i++) {
        if (inputArray[i]%2== 0){
            inputArray[i] = Integer.parseInt(list.get(j).toString());
        j++;}
    }

    for (int i = 0; i < inputArray.length; i++) {
        System.out.println(inputArray[i]);
    }
}