数据结构复习/学习9--堆/堆实现/升降序建堆/top-k问题

一、堆与完全二叉树

    1.堆的逻辑与物理结构

 

2.父节点与子节点的下标 

      

3.大小根堆 

二、堆的实现(大根堆为例)

注意事项总结: 注意堆中插入与删除数据的位置和方法与维持大根堆有序时的数据上下调整

三、堆排序

       1.排升序建大堆效率高

注意事项1:向下调整建堆时,要从树的最后一个叶子节点的父节点开始调整 ,如本处的从以6为根节点的树开始调

注意事项2:向下建堆的效率比向上高

                 向上建堆时将较多的节点移动较多次,向下建堆时将较少的数移动较多次,满二叉树中最后一层有整棵树一半多的节点!!

 

   2.排降序建小堆效率高

四、top--k问题

          

 

 

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Android 开机启动扫描SD卡apk流程源码分析

在开机的时候,装在SD卡的apk和装在系统盘的apk扫描过程不一样,系统盘apk在系统启动过程中扫描,而SD卡上的就不是,等系统启动好了才挂载、扫描,下面就说下SD扫描的流程: 在SystemServer启动MountService&am…

Golang | Leetcode Golang题解之第74题搜索二维矩阵

题目&#xff1a; 题解&#xff1a; func searchMatrix(matrix [][]int, target int) bool {m, n : len(matrix), len(matrix[0])i : sort.Search(m*n, func(i int) bool { return matrix[i/n][i%n] > target })return i < m*n && matrix[i/n][i%n] target }

【查找算法】之二分查找

一、算法介绍 二分查找&#xff0c;也称为折半查找&#xff0c;是一种在有序数组中查找特定元素的高效算法。对于包含 n 个元素的有序数组&#xff0c;二分查找的步骤如下&#xff1a; 确定搜索范围&#xff1a;首先&#xff0c;将要查找的元素与数组中间的元素进行比较。如果…

链舞算法谱---链表经典题剖析

前言&#xff1a;探究链表算法的奥秘&#xff0c;解锁编程新世界&#xff01; 欢迎来到我的链表算法博客&#xff0c;这将是您深入了解链表算法&#xff0c;提升编程技能的绝佳机会。链表作为数据结构的重要成员之一&#xff0c;其动态性和灵活性在实现某些功能上发挥不可替代的…

联发科技发布天玑9300+旗舰5G生成式AI芯片 | 最新快讯

5 月 7 日消息&#xff0c;联发科技今天举办了天玑开发者大会 2024。大会上&#xff0c;联发科技开启了“天玑 AI 先锋计划”&#xff0c;联合业界生态企业发布了《生成式 AI 手机产业白皮书》&#xff0c;分享了生成式 AI 端侧部署的解决方案“天玑 AI 开发套件”。同时&#…

界面组件DevExpress Reporting中文教程 - 如何按条件显示页面水印?

DevExpress Reporting是.NET Framework下功能完善的报表平台&#xff0c;它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集&#xff0c;包括数据透视表、图表&#xff0c;因此您可以构建无与伦比、信息清晰的报表。 从防止未经授权的使用到建立所有权和真实性&am…

java语言数据结构(单链表)

前言 不得承认java应用的广泛&#xff0c;所以毅然决定java版本的数据结构和算法专题还是要坚决更新。每日更新2题&#xff0c;希望学习的小伙伴可以关注一波跟上&#xff0c;评论区欢迎讨论交流。 实现原理 节点&#xff08;Node&#xff09;&#xff1a;链表的基本构建单元…

【Git】Git学习-07:git diff查看差异

学习视频链接&#xff1a;【GeekHour】一小时Git教程_哔哩哔哩_bilibili 默认比较工作区和暂存区的差异 工作区和版本库的内容比较 git diff HEAD / git diff --staged 暂存区和版本库内容比较 git diff --cached 比较特定两个版本的不同 git diff 版本id 版本id HEAD表示提交的…

【Git】Git学习-17:git rebase,且解决合并冲突

学习视频链接&#xff1a;【GeekHour】一小时Git教程_哔哩哔哩_bilibili​编辑https://www.bilibili.com/video/BV1HM411377j/?vd_source95dda35ac10d1ae6785cc7006f365780 理论 git rebase 目标分支&#xff1a;把当前分支的提交&#xff0c;从与目标分支的共同主祖先处断开…

Ubuntu 24.04 LTS 安装 touchegg 开启触控板多指手势

文章目录 〇、概述一、安装 touchegg二、安装 gnome-shell 扩展 X11 Gestures三、安装可视化配置工具 touche 〇、概述 之前为了让笔记本支持多指手势&#xff0c;我安装的是 fusuma&#xff0c;安装教程详见 这篇文章 &#xff0c;考虑到 fusuma 安装过程繁琐且不支持可视化配…

Redis单机安装

1.编译 cd redis安装目录 makemake install2.修改配置文件redis.conf #端口修改 port 6379 #后台进程启动 yes daemonize yes # daemonize no #注释掉 为了可以远程连接 #bind 127.0.0.1 #设置密码 requirepass pwd3.启动 ./redis-server ../redis.conf查看进程 [rootlocal…

地盘紧固的关键技术——SunTorque智能扭矩系统

底盘紧固件是汽车底盘系统中不可或缺的一部分&#xff0c;它们负责连接和固定各个部件&#xff0c;确保车辆行驶的安全和稳定。底盘紧固件的开发涉及到多个环节和关键技术&#xff0c;下面SunTorque智能扭矩系统将详细介绍底盘紧固件开发流程和关键技术。 一、底盘紧固件开发的…

舞台演出因全息纱幕投影有哪些新变化?

如今&#xff0c;随着时代的演进&#xff0c;我们对舞台体验的追求愈发深入&#xff0c;渴望在这片艺术天地中&#xff0c;感受到超越日常的震撼与感动&#xff0c;而这种追求&#xff0c;也正与现代技术的飞速发展不谋而合。其中&#xff0c;全息纱幕投影技术以其独特的魅力&a…

Mysql 基础 order by ,as ,limit,case,asc、desc

order by 、as 、limit 、asc&#xff08;ascending 正序 默认&#xff09; desc&#xff08;descending 倒序&#xff09; SELECT 学号, 姓名, 成绩, CASEWHEN 成绩 > 90 THEN 优秀WHEN 成绩 > 80 THEN 良好WHEN 成绩 > 60 THEN 及格ELSE 不及格 END as 成绩级别 FRO…

数组刷题集

文章目录 概要26. 删除有序数组中的重复项代码Python 189. 轮转数组代码Python 小结 概要 记录一些数组相关的刷题集。 数组数据结构早就写过了&#xff0c;一直没有写相关的刷题集。今天补上。 26. 删除有序数组中的重复项 leetcode26题 题目如上图&#xff1b;也可以去leet…

Vince9120雅思小作文笔记——P1 Intro(前言)

文章目录 链接P1 Intro&#xff08;前言&#xff09;字数限制题型综述&#xff08;problem types overview&#xff09;1. **柱状图&#xff08;Bar Chart&#xff09;** - 描述不同类别在某个或多个变量上的数据量比较。2. **线图&#xff08;Line Graph&#xff09;** - 展示…

【只显示某一层,其它层隐藏】- PCB板工艺及AD软件配置

在pcb文件视图下&#xff0c;按下字母L&#xff0c;弹出如下框&#xff0c; 选择view options 在single layer mode 勾选ON&#xff0c;就可以隐藏其他层 单层显示效果 方法二&#xff1a;shitfs快捷键

SH-PEG-SH,聚乙二醇二巯基广泛用于生物学应用、纳米技术和材料研究中

【试剂详情】 英文名称 SH-PEG-SH 中文名称 聚乙二醇二巯基&#xff0c;双硫醇PEG&#xff0c; 双巯基聚乙二醇&#xff0c;双巯基封端聚乙二醇 外观性状 白色固体粉末 分子量 0.4k&#xff0c;0.6k&#xff0c;1k&#xff0c;2k&#xff0c;3.4k&#xff0c;5k&#x…

前端开发攻略---手写bind函数,看这篇就够了。

1、演示 2、bind函数介绍 在JavaScript中&#xff0c;bind() 函数用于创建一个新函数&#xff0c;其 this 关键字设置为提供的值&#xff0c;而不是调用时绑定的值。这对于在事件处理程序中绑定函数的上下文或者在类中绑定方法的上下文非常有用。 bind() 方法的语法如下&#x…

LeetCode //C - 85. Maximal Rectangle

85. Maximal Rectangle Given a rows x cols binary matrix filled with 0’s and 1’s, find the largest rectangle containing only 1’s and return its area. Example 1: Input: matrix [[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”,“1”,“1”],[“1”,“…