当前位置:网站首页>大根堆的创建(视频讲解)
大根堆的创建(视频讲解)
2022-07-30 09:15:00 【学习追求高效率】
大根堆的创建2
注意:
- 其实左右节点 都是要去找父亲节点,不如遍历的时候,就通过父亲节点遍历(可以减少遍历次数以及 遍历经过中的循环次数)
for (int parent = (usedSize-1-1) / 2; parent >= 0 ; parent--)
public class TestHeap {
public int[] elem;
public int usedSize;//当前堆当中的有效的元素的数据个数
public TestHeap() {
this.elem = new int[10];
this.usedSize = 0;
}
public void initArray(int[] array) {
elem = Arrays.copyOf(array,array.length);
usedSize = elem.length;
}
/** * 建堆:【大根堆】 * 时间复杂度:O(n) */
public void createHeap() {
for (int parent = (usedSize-1-1) / 2; parent >= 0 ; parent--) {
shiftDown(parent,usedSize);
}
}
/** * 实现 向下调整 * @param parent 每棵子树的根节点的下标 * @param len 每棵子树的结束位置 */
private void shiftDown(int parent ,int len) {
int child = 2 * parent + 1;
//最起码是有左孩子
while (child < len) {
//判断 左孩子 和 右孩子 谁最大,前提是 必须有 右孩子
if(child+1 < len && elem[child] < elem[child+1]) {
child++;//此时 保存了最大值的下标
}
if(elem[child] > elem[parent]) {
swap(elem,child,parent);
parent = child;
child = 2*parent+1;
}else {
break;
}
}
}
private void swap(int[] array,int i,int j) {
int tmp = array[i];
array[i] = array[j];
array[j] = tmp;
}
}
边栏推荐
- Apache DolphinScheduler's new generation of distributed workflow task scheduling platform in practice - Part 1
- 2022杭电多校第二场
- leetcode 剑指 Offer 57. 和为s的两个数字
- MySQL [operator]
- 快解析结合象过河erp
- 水电表预付费系统
- Shell系统学习之数组
- 69. Sqrt(x)x 的平方根
- leetcode 剑指 Offer 10- II. 青蛙跳台阶问题
- Unreal Engine Graphic Notes: could not be compiled. Try rebuilding from source manually. Problem solving
猜你喜欢
随机推荐
PyQt5快速开发与实战 7.4 事件处理机制入门 and 7.5 窗口数据传递
Shell系统学习之数组
EViews 12.0软件安装包下载及安装教程
els 方块、背景上色
快解析结合用友时空
功能测试、UI自动化测试(web自动化测试)、接口自动化测试
leetcode 剑指 Offer 48. 最长不含重复字符的子字符串
HCIP - MPLS VPN experiment
Apache DolphinScheduler新一代分布式工作流任务调度平台实战-上
Circuit analysis: constant current source circuit composed of op amp and triode
积分专题笔记-积分的定义
方法的参数传递
利用R语言读取csv文件入一个数据框,然后查看各列的属性。
Concise Notes on Integrals - Types of Curve Integrals of the Second Kind
hcip06 ospf特殊区域综合实验
2022杭电多校第一场
转行软件测试,报培训班3个月出来就是高薪工作,靠谱吗?
C# 之 $ – 字符串内插
els 方块向左移动
延迟队列MQ









