优先队列的运用

本文深入探讨了优先队列(PriorityQueue)在Java中的实现,特别是小根堆和大根堆的应用。讲解了如何通过比较器自定义排序规则,以实现不同需求的元素移除。同时,详细阐述了在处理多元素时,如何根据元素的多个属性进行排序。对于堆的插入和删除操作,以及在实际问题中的应用进行了实例解析。
摘要由CSDN通过智能技术生成

优先队列的默认是小根堆,相当于PriorityQueue<int[]>heap=new PriorityQueue<>((a,b)->a[0]-b[0])

需要运用排序处理,与选择哪个之前,或者需要大的移除出堆,还是小的移除堆,如果需要把小的移除堆,那么只需要按默认的a[0]-b[0],如果需要把大的移出去,需要改成b[0]-a[0],这样会把小的下压,大的放到堆顶,直接用heap.poll()可以移除堆顶

如果有双元素,默认会按第一个元素去排,就第一个数的下标进行减,如果需要两个元素和比较,那么相加与后面的相减

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值