堆排序——向下调整

news2024/12/23 19:52:25

之前我们要想实现堆排序,是运用建堆代码来实现的:
向上调整建堆——向下调整排序
在这里插入图片描述
那么去我们可不可以只适用一种调整方法(向下调整)就能实现这样的功能呢?

向要只使用向下调整就实现堆排序
首先就是把数组里的值使用向下调整就变成堆,但是想要使用向下调整,应该出了根之外其他都满足堆才行
向下调整建堆——向下调整排序

在这里插入图片描述
在这里插入图片描述
总结,把一个树,拆分成单个单个的树,然后向下调整,把他们都变成堆,最后整个树就成了堆

向上调整,向下调整代码总结:
在这里插入图片描述
向下调整
在这里插入图片描述
可以看出向上调整的时间复杂度是:N*logN
向下调整的时间复杂度为:N

想要在一个文件中有一亿个数据中找最大的前100个数据

1,从文件中读取100个数据,建立小堆
2、在依次读取文件中剩余的数据,于堆顶数据比较,只要比堆顶大就替换,然后再向下调整,这样把所有剩余的数于堆顶数据比较完后,堆里的数据就是最大的前100个数

补充:树的一个做题性质
在一个树中,节点为0的节点数,是节点为2的节点数+1:n0=n2+1
在一个完全二叉树中节点为1的节点数最多只会有一个
例题:
在这里插入图片描述

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

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

相关文章

互联网Java工程师面试题·Dubbo 篇·第二弹

目录 18、Dubbo 用到哪些设计模式? 19、Dubbo 配置文件是如何加载到 Spring 中的? 20、Dubbo SPI 和 Java SPI 区别? 21、Dubbo 支持分布式事务吗? 22、Dubbo 可以对结果进行缓存吗? 23、服务上线怎么兼容旧版本&…

设计模式12、代理模式 Proxy

解释说明:代理模式(Proxy Pattern)为其他对象提供了一种代理,以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 抽…

星宿UI2.4资源付费变现小程序源码 支持流量主

第一个小程序为星宿小程序 目前是最新版2.0 搭建星宿需要:备用域名 服务器 微信小程序账号 功能:文章展示 文章分类 资源链接下载 轮播图 直接下载附件功能 很多 很适合做资源类分享 源码下载:https://download.csdn.net/download/m0_6604…

Android LitePal byte[]类型字段不被创建

我创建了以下实体类,主要是用户分享的内容、分享的照片、分享的标题,然后百度了一下LitePal可以识别byte[],因为需要文件的上传与读取: public class Context extends LitePalSupport {private Integer ContextId;private String…

二叉树题目:路径总和 II

文章目录 题目标题和出处难度题目描述要求示例数据范围 前言解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题:路径总和 II 出处:113. 路径总和 II 难度 4 级 题目描述 要求 给你二叉树的根结点 root \tex…

软件设计模式系列之二十五——访问者模式

访问者模式(Visitor Pattern)是一种强大的行为型设计模式,它允许你在不改变被访问对象的类的前提下,定义新的操作和行为。本文将详细介绍访问者模式,包括其定义、举例说明、结构、实现步骤、Java代码实现、典型应用场景…

【2023年11月第四版教材】第18章《项目绩效域》(第一部分)

第18章《项目绩效域》(第一部分) 1 章节内容2 干系人绩效域2.1 绩效要点2.2 执行效果检查2.3 与其他绩效域的相互作用 3 团队绩效域3.1 绩效要点3.2 与其他绩效域的相互作用3.3 执行效果检查3.4 开发方法和生命周期绩效域 4 绩效要点4.1 与其他绩效域的相…

电脑重置 Win 10系统

文章目录 电脑重置系统操作步骤一、右键 开始→ 设置二、点击 更新与安全三、点击 恢复四、点击 开始四、按需二选一五、以本地重新安装为例,点击 下一页六、点击 重置七、重新进行Windows设置 当电脑出现系统文件损坏、磁盘掉盘等情况,可以考虑重装系统…

Docker启动Mysql

如果docker里面没有mysql需要先pull一个mysql镜像 docker pull mysql其中123456是mysql的密码 docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD123456 -d mysql可以使用如下命令进入Mysql的命令行界面 docker exec -it mysql bash登录mysql使用如下命令,root是…

基于SSM框架的校园疫情防控健康打卡系统

本系统采用基于JAVA语言实现、架构模式选择B/S架构,Tomcat7.0及以上作为运行服务器支持,基于JAVA等主要技术和框架设计,idea作为开发环境,数据库采用MYSQL5.7以上。 开发环境: JDK版本:JDK1.8 服务器&…

【go语言】入门go语言结构体

结构体的定义 结构体是一种用户自定义的数据类型,它由一组字段组成,每个字段可以是任意基本类型或其他结构体类型。结构体在Go语言中被广泛使用,它可以用来表示复杂的数据结构,比如二叉树、链表、图等。 结构体的形式如下&#…

SpringBoot青海省旅游系统

本系统采用基于JAVA语言实现、架构模式选择B/S架构,Tomcat7.0及以上作为运行服务器支持,基于JAVA、JSP等主要技术和框架设计,idea作为开发环境,数据库采用MYSQL5.7以上。 开发环境: JDK版本:JDK1.8 服务器…

【boost网络库从青铜到王者】第七篇:asio网络编程中的异步echo服务器,以应答为主

文章目录 1、简介2、echo模式应答异步服务器2.1、Session会话类2.2、Server类为服务器接收连接的管理类 3、客户端4、隐患5、总结 1、简介 前文已经介绍了异步操作的api,今天写一个简单的异步echo服务器,以应答为主。 2、echo模式应答异步服务器 2.1、…

R | R包默认安装路径的查看及修改

R | R包默认安装路径的查看及修改 一、R包安装位置查看二、已安装R包查询三、R包安装位置修改四、R包安装位置永久修改 在【R: R package安装的几种方式】【R: R版本更新及R包迁移(详细步骤)】两篇文章中介绍过R包的常见安装方式,以及在不同R…

一道求导题:1004T3

需要知识: ( x n ) ′ n x n − 1 (x^n)nx^{n-1} (xn)′nxn−1 ( s i n x ) ′ c o s x (sinx)cosx (sinx)′cosx [ f ( g ( x ) ) ] ′ f ′ ( g ( x ) ) g ′ ( x ) [f(g(x))]f(g(x))\times g(x) [f(g(x))]′f′(g(x))g′(x) 推完之后,考虑导函数与x轴的交点…

测试2023

1 企业级全栈测试平台 RunnerGO 1.1 Flow流拖拽自由组合,实时协作和共享 Flow自由拖拽自由组合,可以实现在进行一个接口后并发执行后续的步骤 接口自定义权重,根据Flow流自由组合配合接口自定义权重可以模拟真实业务分流的场景 全链路场景&am…

Tomcat基础与优化

Tomcat介绍 Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,Tomcat具有处理HTML页面的功能,通常作为一个Servlet和JSP容器,单独运行…

“在 ArchiMate EA 建模中的组合关系:构建块和依赖关系

简介 在企业架构(EA)建模领域,结构关系在描绘架构内静态一致性方面起着至关重要的作用。其中一个关键的结构关系是组合关系,这是 ArchiMate 语言中深植的概念,提供了一个全面的框架,用于表达元素如何组合形…

C++的继承基础和虚继承原理

1.继承概念 “继承”是面向对象语言的三大特性之一(封装、继承、多态)。 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性基础上进行扩展,增加功能&…

COO、CSR、adj_coo、adj_csr详解:稀疏矩阵与稀疏邻接矩阵的存储格式及转换

文章目录 一、COO二、CSR三、adj_coo四、adj_csr五、格式转换代码 稀疏图:数据结构中对于稀疏图的定义为:有很少条边或弧(边的条数 ∣ E ∣ |E| ∣E∣ 远小于 ∣ V ∣ 2 |V|^2 ∣V∣2)的图称为稀疏图,反之边的条数 …