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

住房城乡建设部 网站网页设计主要做什么

住房城乡建设部 网站,网页设计主要做什么,网络舆情监测软件,软件开发最强的公司前言 之前已经说过堆的特点了,具体文章在数据结构与算法【队列】的Java实现-CSDN博客。因此直接实现堆的其他功能。 建堆 所谓建堆,就是将一个初始的堆变为大顶堆或是小顶堆。这里以大顶堆为例。展示如何建堆。 找到最后一个非叶子节点从后向前&…

前言 

之前已经说过堆的特点了,具体文章在数据结构与算法【队列】的Java实现-CSDN博客。因此直接实现堆的其他功能。

建堆

所谓建堆,就是将一个初始的堆变为大顶堆或是小顶堆。这里以大顶堆为例。展示如何建堆。

  1. 找到最后一个非叶子节点
  2. 从后向前,对每个节点执行下潜

一些规律(0作为根节点时满足)

  • 一棵满二叉树节点个数为 2^h-1,如下例中高度 h=3 节点数是 2^3-1=7
  • 非叶子节点范围为 [0, size/2-1]

建堆的时间复杂度为O(n)。

一个基础的大顶堆实现代码如下

public class MaxHeap {int[] array;int size;public MaxHeap(int capacity) {this.array = new int[capacity];}public MaxHeap(int[] array) {this.array = array;this.size = array.length;heapify();}/*** 获取堆顶元素** @return 堆顶元素*/public int peek() {return array[0];}/*** 删除堆顶元素** @return 堆顶元素*/public int poll() {int top = array[0];swap(0, size - 1);size--;down(0);return top;}/*** 删除指定索引处元素** @param index 索引* @return 被删除元素*/public int poll(int index) {int deleted = array[index];up(Integer.MAX_VALUE, index);poll();return deleted;}/*** 替换堆顶元素** @param replaced 新元素*/public void replace(int replaced) {array[0] = replaced;down(0);}/*** 堆的尾部添加元素** @param offered 新元素* @return 是否添加成功*/public boolean offer(int offered) {if (size == array.length) {return false;}up(offered, size);size++;return true;}// 将 offered 元素上浮: 直至 offered 小于父元素或到堆顶private void up(int offered, int index) {int child = index;while (child > 0) {int parent = (child - 1) / 2;if (offered > array[parent]) {array[child] = array[parent];} else {break;}child = parent;}array[child] = offered;}// 建堆private void heapify() {// 如何找到最后这个非叶子节点  size / 2 - 1for (int i = size / 2 - 1; i >= 0; i--) {down(i);}}// 将 parent 索引处的元素下潜: 与两个孩子较大者交换, 直至没孩子或孩子没它大private void down(int parent) {int left = parent * 2 + 1;int right = left + 1;int max = parent;if (left < size && array[left] > array[max]) {max = left;}if (right < size && array[right] > array[max]) {max = right;}if (max != parent) { // 找到了更大的孩子swap(max, parent);down(max);}}// 交换两个索引处的元素private void swap(int i, int j) {int t = array[i];array[i] = array[j];array[j] = t;}
}
http://www.yidumall.com/news/34761.html

相关文章:

  • 郑州市二七建设局网站品牌推广的具体方法
  • 中国城乡建设部网站首页网站设计公司有哪些
  • 163企业邮箱注册入口宁波seo教程行业推广
  • 网站开发下单功能网站优化推广方案
  • 哪些网站是phpwind做的百度手机助手下载安装
  • 做团购网站的公司国内外十大免费crm软件推荐
  • 济南做网站的免费个人主页网站
  • 云南专业建网站淘宝运营
  • 做的很好的黑白网站排名前50名免费的网站
  • 免费商城网站chatgpt网站
  • 怎么查网站是哪家公司做的重庆网站seo教程
  • 查看邮箱注册的网站网站建立的步骤
  • se 网站优化百度客服人工在线咨询
  • 义乌高端网站设计品牌百度客服中心人工在线电话
  • 网站 seo提高工作效率8个方法
  • 企业网站建设宣贯百度的人工客服
  • 江华县网站开发免费网页制作网站
  • wordpress搭建的知名网站漯河网络推广哪家好
  • 咸阳网站开发公司电话线上推广平台有哪些
  • 怎么用ppt做网站全网营销推广方案
  • 中国空间站组合体seo快速整站上排名教程
  • 建筑模板的价格一览表seo零基础入门教程
  • 婚纱礼服外贸网站地方网站建设
  • 零基础做网站武汉全网营销推广公司
  • 海南建设培训与执业资格注册中心网站写一篇软文多少钱
  • 永久免费手机网站建设公司网站优化方案
  • 花店网页设计代码seo工作职责
  • 做网站时的兼容问题参考消息网国内新闻
  • 销售网站制作危机公关
  • 公司企业邮箱是什么搜索引擎优化宝典