TopN问题

news2024/11/23 10:07:52

100亿个integer数据,如何找到前k个最小值。

也就是问的如何排序最快

堆排序最快

完全二叉树

堆结构其实就是一颗完全二叉树

大根堆和小根堆

大根堆:每一个根节点都大于它的叶子结点

小根堆:每一个根节点都小于它的叶子结点

通过建立大根堆或者小根堆来实现topN的问题。

自顶向下建堆并且排序

也就是说从二叉树的根开始创建小根堆或大根堆,每次加入节点的时候都需要判断当前节点与根节点大小。就是一个频繁比较与交换的过程

最终根节点就是最大或者最小的元素,取出二叉树根节点之后,然后将新节点放在跟根节点重新构建堆,再取二叉树的根节点。

最后剩一个节点结束。这样就完成了堆的排序。

结论

  • 1 首先取出前1w条数据建立最小堆(要考虑内存问题,不能将100亿条数据都读入内存)
  • 2 每次取出二叉树根节点存入文件当中
  • 3 重新构建堆,重复过程2
  • 4 直至100亿条数据都加入了二叉树中,此时只剩二叉树的节点。
  • 5 然后每次将二叉树的最后一个元素放入二叉树的根节点上,重复 2 3操作,直至剩余最后一个元素为止。
  • 6 我们的排序就结束了

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

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

相关文章

【最新顶刊综述】【多模态学习】Vision + X:A Survey on Multimodal Learning in the Light of Data

VisionX:基于数据的多模态学习综述 论文链接 0.论文摘要和信息 摘要 摘要——我们以多感官的方式感知世界并与世界交流,不同的信息源由人脑的不同部分复杂地处理和解释,构成一个复杂但和谐统一的感知系统。为了赋予机器真正的智能&#x…

核心系统用PG了,抠脑壳的权限,搞晕了!

作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、MySQL、PG、 高斯及Greenplum备份恢复, 安装迁移,性能优化、故障…

ThinkPHP8出租屋管理系统

有需要请加文章底部Q哦 可远程调试 ThinkPHP8出租屋管理系统 一 介绍 此出租屋管理系统基于ThinkPHP8框架开发,数据库mysql,前端Vue3,前后端不分离,系统主要角色为管理员。房租计算器,房东记账收租管理,房…

使用 Prism 框架实现导航.NET 6.0 + WPF

动动您的手指关注下公众号,获取更多优质文章 前言 Prism 一个开源的框架,专门用于开发可扩展、模块化和可测试的企业级 XAML 应用程序,适用于 WPF(Windows Presentation Foundation)和 Xamarin Forms 等平台。 Prism…

用什么软件可以把做过的试卷还原?4款软件轻松还原

用什么软件可以把做过的试卷还原?在数字化教育的浪潮中,将做过的试卷还原成空白状态不仅满足了学生和教师对于重复练习和分享的需求,还极大地提升了学习效率与资源利用率。这一功能使得错题重做、模拟考试等教学活动更加便捷,促进…

Openpose

核心概念: OpenPose基于Part Affinity Fields(PAFs,部件亲和场)的概念,这是一种非参数化的表示方法,用于学习图像中个体的身体部位之间的关联。 系统流程: 输入图像: 方法接受一个…

单片机,传感器等低功耗管理

**有些客户需求,把设备做成低功耗管理,这样就可以节省电池的电量,也可以增加传感器的使用寿命 HCLK为CPU提供时钟,内核执行代码。当CPU不需要继续运行时,可以利用多种低功耗模式,等待某个事件触发 ① 睡眠…

大模型实战教程:使用Langchain与ChatGLM实现本地知识库

大语言模型也只是将用户提供的大规模数据集训练而来,也并非万能的什么都知道,特别是一些小众知识、内部数据或私密的个人数据等,此时ChatGLM3肯定会胡乱回答就是ChatGPT4也不一定能给出满意回答;不少公司、个人都有自己的知识库或…

大型集团企业指标体系建设

大型集团企业在进行指标体系建设时,通常会遵循以下几个方面的要求来确保体系的有效性和适用性: 全面性:指标体系应覆盖企业的各个方面,包括但不限于财务状况、市场表现、运营效率、客户满意度、员工发展等。这有助于企业从多个角度…

c4d的vray的蒙版渲染

在一个比较隐藏的角落,extensions>v-ray Tags> Object Properties>勾选Matte Surface,Alpha Contribution打上-1.

JVM面试真题总结(七)

文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 解释GC的引用计数算法及其局限性 引用计数算法是一种非常直观、简…

Rocky Linux 9 初次安装后启用 SSH Root 远程登录

Rocky Linux 9 是由 CentOS 的创始人发布的版本,目的是解决 CentOS 停服后企业用户的替代需求。Rocky Linux 9 基于 Red Hat Enterprise Linux 9 下游版本。在 Rocky Linux 9 中,为了增强系统的安全性,默认禁用了 SSH root 密码登录。这是为了…

第12章 进入保护模式

第12章 进入保护模式 章节一开始说明了为什么要有保护模式?后续介绍了如何进入保护模式。 实模式:在实模式下,程序是可以“为所欲为”的。它想访问内存的哪一部分,都可以很轻松地通过设置段地址和偏移地址来办到。 保护模式&am…

Plasma FX

Plasma FX是使用自定义着色器的等离子效果的集合。 通过调整粒子系统参数和颜色,可以轻松自定义效果。 特征 50+效果 定制化 等离子粒子着色器 演示场景 移动预制件 下载:​​Unity资源商店链接资源下载链接 效果图:

nodejs基础教程之-异步编程promise/async/generator

1. 异步 所谓"异步",简单说就是一个任务分成两段,先执行第一段,然后转而执行其他任务,等做好了准备,再回过头执行第二段,比如,有一个任务是读取文件进行处理,异步的执行过程就是下面…

C#获取计算机信息

目录 效果 项目 代码 下载 效果 项目 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Management; n…

基于SSM的二手物品交易管理系统的设计与实现 (含源码+sql+视频导入教程+文档+PPT)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于SSM的二手物品交易管理系统7拥有两种角色 管理员:用户管理、分类管理、商品管理、订单管理、系统管理等 用户:登录注册、充值、收货、评价、收藏、购物车、订…

vue + Element UI table动态合并单元格

一、功能需求 1、根据名称相同的合并工作阶段和主要任务合并这两列,但主要任务内容一样,但要考虑主要任务一样,但工作阶段不一样的情况。(枞向合并) 2、落实情况里的定量内容和定性内容值一样则合并。(横向…

【机器学习】马尔可夫随机场的基本概念、和贝叶斯网络的联系与对比以及在python中的实例

引言 马尔可夫随机场(Markov Random Field,简称MRF)是一种用于描述变量之间依赖关系的概率模型,它在机器学习和图像处理等领域有着广泛的应用 文章目录 引言一、马尔科夫随机场1.1 定义1.2 特点1.3 应用1.4 学习算法1.5 总结 二、…

使用 Apache Spark 和 Deequ 分析大数据集

在当今的数据驱动环境中,掌握使用 Apache Spark 和 Deequ 对大型数据集进行分析对于任何处理数据分析、SEO 优化或需要深入研究数字内容的类似领域的专业人士来说都至关重要。 Apache Spark 提供处理大量数据所需的计算能力,而 Deequ 提供质量保证层&am…