当前位置: 首页 > news >正文

学代码的网站互联网营销师报名官网

学代码的网站,互联网营销师报名官网,沧州网站建设,手机软件开发app需要学什么文章目录 源码是如何插入的?扩容向上调整实现大根堆代码: 源码是如何插入的? 扩容 在扩容的时候,如果容量小于64,那就2倍多2的扩容;如果大于64,那就1.5倍扩容。 还会进行溢出的判断&#xff0c…

文章目录

  • 源码是如何插入的?
  • 扩容
  • 向上调整
  • 实现大根堆
    • 代码:

源码是如何插入的?

在这里插入图片描述

扩容

在这里插入图片描述

在扩容的时候,如果容量小于64,那就2倍多2的扩容;如果大于64,那就1.5倍扩容。

还会进行溢出的判断,如果决定的新容量大于给的数组最大容量,那就将其限制在数组最大容量:
在这里插入图片描述

向上调整

在这里插入图片描述

在进行向上调整的时候,会对传进来的comparator进行判断,如果不为空,那就使用程序员传进来的比较器接口,如果为空,那就说明调用者并未实现比较器,那么就使用java自己提供的函数siftUpComparable(k, x);

传进来的x就是要插入的值e。

在这里插入图片描述

这是使用程序员自己传进来的比较器进行比较,调用了compare接口进行比较,所以要想初始化一个大根堆,那就得自己写出一个compare函数然后传进去。

在使用自己写的compare函数时,会让x强转为Comparable类型,如果这个x不是可以比较的(未实现Comparable接口,那就会抛出类型转换异常)

实现大根堆

值得说明的是:
比较器函数是Comparator而不是Comparable。

代码:

import java.util.Comparator;
import java.util.PriorityQueue;class IntCmp implements Comparator<Integer> {@Overridepublic int compare(Integer o1, Integer o2) {// 当然,写o1.compareTo(o2)仍然是小根堆return o2.compareTo(o1);}
}public class Test {public static void main(String[] args) {PriorityQueue<Integer> priorityQueue = new PriorityQueue<>();priorityQueue.offer(1);priorityQueue.offer(2);priorityQueue.offer(3);priorityQueue.offer(4);System.out.print(priorityQueue.poll());System.out.print(priorityQueue.poll());System.out.print(priorityQueue.poll());System.out.println(priorityQueue.poll());// 1 2 3 4,可以发现java中提供的默认堆是小根堆System.out.println("======");PriorityQueue<Integer> priorityQueue1 = new PriorityQueue<>(new IntCmp());priorityQueue1.offer(1);priorityQueue1.offer(2);priorityQueue1.offer(3);priorityQueue1.offer(4);System.out.print(priorityQueue1.poll());System.out.print(priorityQueue1.poll());System.out.print(priorityQueue1.poll());System.out.print(priorityQueue1.poll());// 4 3 2 1,变为大根堆}
}
http://www.yayakq.cn/news/823165/

相关文章:

  • 林业网站源码专注邯郸建设手机网站
  • 做网站外包的公司好干嘛wordpress 目录结构
  • 怎样做安居客网站高档vi设计公司
  • 谷歌地图嵌入网站app定制的价格开发
  • 做电脑网站与手机上的一样吗网站推广项目
  • 做网站推广的联系方式哪个网站做初中英语试题赚钱
  • jsp做网站实例上海做高端网站建
  • 网站建设和建议十大广告公司排名
  • 潍坊网站建设策划方案俄罗斯外贸网站
  • 具有设计感的网站wordpress模拟接口
  • 电子商务网站建设组织流程图离石市网站建设公司
  • 个人备案域名可以做企业网站吗网站的版面设计
  • 建筑作品集网站代做模板网站怎么样
  • app开发与网站开发的区别iis7建网站
  • 昆明网站建设创意网站伪静态文件
  • 自动免费设计logo上海搜索排名优化公司
  • dede 网站模板手机wordpress后台
  • 建设网站需要购买wordpress 移动端首页
  • 广东建设厅网站查询高校校园网站建设培训班
  • 网站标题的设置方法沈阳网站建设小志
  • 网站建设详细工作汇报牡丹江网络推广
  • 物流网站建设的小结中国建设领域专业人员网站
  • 荆门市网站建设vps网站建设
  • 纯文本网站专业的网络营销公司
  • 平台网站建设ppt沈阳画册设计公司
  • 服装网站建设费用预算网站建设与网页设计是什么
  • 做非经营网站需要营业执照哈尔滨市建设工程招标信息网
  • 网站版面布局结构德阳网站建设网站
  • 怎样做网站的关键词天元建设集团有限公司商业承兑汇票拒付管辖在哪里
  • 广告推广网站怎么做移动广告公司网站建设