剑指Offer—偶数和奇数按顺序放置

package 剑指Offer;

import java.util.Arrays;
import java.util.Comparator;
import java.util.PriorityQueue;

public class 偶数和奇数分段从小到达排序 {
    //给定数组,其中包括奇数和偶数,按偶数在面前,奇数在后面,其中偶数和奇数部分分别按从小到大的顺序排列
    //思路:使用PriorityQueue实现,自定义比较器
    public static void main(String[] args) {
        int [] nums={2,1,4,3,6,5,8,7,9,10};
        helper(nums);
        System.out.println(Arrays.toString(nums));
    }
    public static void helper(int [] nums){
        //使用PriorityQueue实现
        PriorityQueue <Integer> pq = new PriorityQueue <Integer>(10, new Comparator <Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                int resulte=o1%2-o2%2;
                if(resulte==0){
                    //说明同为一类型的数,直接返回从小到大
                    return o1-o2;
                }
                //为不同类型的,按从小大排序
                return resulte;
            }
        });
        for(int num:nums){
            pq.offer(num);
        }
        int count=0;
        while(!pq.isEmpty()){
            //重新赋值
            nums[count++]=pq.poll();
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值