【算法基础】堆⭐⭐⭐

news2024/11/16 2:57:28

一、堆

1. 堆的概念

堆(heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质:
(1)堆中某个结点的值总是不大于或不小于其父结点的值;
(2)堆总是一棵完全二叉树。
将根结点最大的堆叫做最大堆或大根堆,根结点最小的堆叫做最小堆或小根堆。常见的堆有二叉堆、斐波那契堆等。堆是非线性数据结构,相当于一维数组,有两个直接后继。

2. 堆的基本操作与实现原理

在这里插入图片描述
如上图所示👆,堆就是二叉树结构,以小根堆为例,每个节点都有两个子节点(除了最后两层),而且该节点比两个子节点都要小。我们需要准备两个函数:down(); 和 up(),down表示当前元素太大了,需要向下移动,此时需要在当前节点、两个子节点,这三个节点中选择最小的点与当前节点交换,逐渐下沉,直到无法交换为止;up表示当前元素太小了,需要上移,但是此时只需要比较当前节点和父节点的大小关系,若比父节点小,则交换,递归,直到无法交换(因为这三个节点的最小值一定是当前节点和父节点之间选择,另一个子节点一定 >= 父节点)。

堆通常使用一维数组来存储,父节

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/354292.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

以太网协议、arp协议、NAT协议、DNS协议

目录 数据链路层: 以太网协议: arp协议 1、arp协议格式 2、arp协议内容解释: arp缓存表 NAT协议:地址转换协议 1、作用:将网络数据当中的私网IP替换成为公网IP,或者将网络数据当中的公网IP替换为私网I…

大数据框架之Hadoop:MapReduce(二)Hadoop序列化

2.1序列化概述 1、什么是序列化 序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。 反序列化就是将收到字节序列(或其他数据传输协议)或者…

TCP 的演化史-fast retransmit/recovery

工作原因要对一个 newreno 实现增加 sack 支持。尝试写了 3 天 C,同时一遍又一遍梳理 sack 标准演进。这些东西我早就了解,但涉及落地写实现,就得不断抠细节,试图写一个完备的实现。 这事有更简单的方法。根本没必要完全实现 RFC…

大型信息系统

一、大型信息系统二、信息系统的规划方法三、信息系统的规划工具 一、大型信息系统 信息系统规划(也称为信息系统战略规划)是一个组织有关信息系统建设与应用的全局性谋划,主要包括战略目标、策略和部署能内容。 信息化规划是企业信息化建设…

安全—08day

ApabilitiesapabilitiesLinux Capabilities线程的 capabilitiesPermitted 允许Effective 有效InheritableBoundingAmbient文件的 capabilitiesPermittedInheritableEffective运行 execve() 后 capabilities 的变化案例分析方法一、依次执行如下命令方法二、iptables端口转发方案…

SAP ABAP GUI_DOWNLOAD中下载乱码的问题

1 GUI_DOWNLOAD 1.1 问题表现 GUI_DOWNLOAD在应用当中有时会导致输出的文件在某些电脑正常显示,在某些电脑乱码显示。这个固然是由于各个电脑系统配置有差异,但是我们可以在应用该函数时就排除该差异来保证任意台电脑正常显示输出的文件。 如下…

英语基础-定语从句的特殊用法及写作应用

1. 定语从句的引导词省略的情况 1. that 引导定语从句,从句中缺宾语/表语,that可省略; This is the book that he likes. I like the shirt that you gave me. We do not agree on the plan that you make. China is not the country th…

论文浅尝 | SpCQL: 一个自然语言转换Cypher的语义解析数据集

笔记整理:郭爱博,国防科技大学博士论文发表会议:The 31th ACM International Conference on Information and Knowledge Management,CIKM 2022动机随着社交、电子商务、金融等行业的快速发展,现实世界编织出一张庞大而…

测试人员为什么也要学习Linux操作系统

我相信能够看到这篇文章的你,一定是对计算机感兴趣、想要增加技能从而为以后加薪打基础。今天,我就和大家谈谈我对为什么要学习 Linux 系统的看法。我将从如下这三个方面谈我的看法。 巩固基础知识 做一个合格的软件工程师 学以致用 1. 巩固基础知识 …

2023年美国大学生数学建模C题:预测Wordle结果建模详解+模型代码

目录 前言 一、题目理解 背景 解析 字段含义: 建模要求 二、建模思路 灰色预测: ​编辑 二次指数平滑法: person相关性 只希望各位以后遇到建模比赛可以艾特认识一下我,我可以提供免费的思路和部分源码,以后…

字符设备驱动基础(一)

目录 一、Linux内核对设备的分类 linux的文件种类: Linux内核按驱动程序实现模型框架的不同,将设备分为三类: 总体框架图: 二、设备号------内核中同类设备的区分 三、申请和注销设备号 四、函数指针复习 4.1、 内存四区 …

ACM数论 裴蜀定理(贝祖定理)

一.内容定义 「裴蜀定理」,又称贝祖定理(Bzouts lemma)。是一个关于最大公约数的定理。其内容定义为:对于不全为零的任意整数 a 和 b,记二者的最大公约数为 g 即 gcd(a,b) g,则对于任意整数 x 和 y 都一定…

ASEMI高压MOS管4N65SE,4N65SE参数,4N65SE特征

编辑-Z ASEMI高压MOS管4N65SE参数: 型号:4N65SE 漏极-源极电压(VDS):650V 栅源电压(VGS):30V 漏极电流(ID):4A 功耗(PD&#xf…

分析内核自带的LCD驱动程序_基于IMX6ULL

分析内核自带的LCD驱动程序_基于IMX6ULL 文章目录分析内核自带的LCD驱动程序_基于IMX6ULL参考资料:一、驱动程序框架1.1 入口函数注册platform_driver1.2 设备树有对应节点1.3 probe函数分析二、 编写硬件相关的代码2.1 GPIO设置2.2 时钟设置2.3 LCD控制器的配置致谢…

[软件工程导论(第六版)]第1章 软件工程学概述(课后习题详解)

文章目录1. 什么是软件危机?它有哪些典型表现?为什么会出现软件危机?2. 假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及早发现并改正错误的重要性时,有人不同意这个观点&…

C#按边框切检验仪器图

最近碰到一个检验设备是生成PDF文件报告的。imedicallis监听程序把PDF解析出来之后发现PDF里面图不是多个小图,而是一张大图。但用户又要传到检验系统的是小图,而且小图位置和数量不固定,也不能用固定位置截取实现。为此开启一段“高端设备局…

Linux生产者消费模型

1.生产者消费者模型 1.1 为何要使用生产者消费者模型 生产者消费者模式就是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接…

【淄博正大光明】收藏|三分钟带你全面了解这个神奇的镜片

对于孩子的东西 家长总是谨慎再谨慎 而对于夜间戴在眼睛里的镜片 家长更是存在很多顾虑 安全吗?有效吗? 影响孩子睡觉吗? 别着急淄博正大光明眼科医院 带你深度了解角膜塑形镜 01 角膜塑形镜究竟是什么? 角膜塑形镜是一种使用高分…

一文搞懂Linux内核进程CPU调度基本原理

为什么需要调度 进程调度的概念比较简单,我们假设在一个单核处理器的系统中,同一时刻只有一个进程可以拥有处理器资源,那么其他的进程只能在就绪队列中等待,等到处理器空闲之后才有计划获得处理器资源来运行。在这种场景下&#…

k8s快速入门

文章目录一、Kubernetes(K8S)简介1、概念1.1 Kubernetes (K8S) 是什么1.2 核心特性1.3 部署方案2、Kubernetes 集群架构2.1 架构2.2 重要概念 Pod2.3 Kubernetes 组件二、Kubernetes集群安装1、安装方式介绍2、minikubute安装3、裸机搭建(Bar…