分享好友 最新动态首页 最新动态分类 切换频道
数据结构——利用堆进行对数组的排序
2024-12-28 23:15

今天文章的内容是关于我们如何利用堆的特性对我们的数组进行排序,还有就是我们的TopK的问题,这次我们放在的是文件种,我们放入一亿个数字,然后我们取出一亿个数字中最大的十个数,利用上章堆的问题进行解决。

首先就是我们如果对一个数组要进行排序,这个数组是没有任何规律的,就像下面的这个数组。

 

那我们得利用我们堆的特性,因为我们知道堆的特性,首先堆顶的数据一定是最小的,那我们要进行排序之前的话,要做的一个最重要的步骤就是先建立一个堆出来,我们可以用两种方法,一种是向上建堆,另一种就是向下建堆,这两个方法我们都会讲。

向上建堆

首先我们这里给的例子是升序,但是在升序的时候,我们是建立大堆还是小堆呢?答案是,那我们先来看看减小堆的时候,会产生怎样的问题,再来看看大堆,两者相互比较之后,我们就会发现升序就应该建立大堆。

首先就是复用我们上次堆的内容的向上建堆的那个方法,就是,如果这里大家不明白可以回头看看,我这里直接给出代码。

 

我们可以看到这是向上调整,那我们建堆的过程是不是从二叉树的第二层开始往上建堆,比较的就是孩子和父亲的关系,那我们这里就可以写一个循环来完成这个建立堆的过程。

 

然后我们这个过程建立出来堆的样子就是我们的小堆

那我们的代码就是下面这个,其实代码很简答的主要可能难理解。

 
 

这个就是AdjustDown的代码,再堆里讲过,这样就不将了,来看我们如何进行排序的部分

 

end = 0的时候就说明已经排序好了,所以这个就是判断条件,然后来看我们的end一开始就是指向最后一个元素,因为是数组,所以这里表示的就是下标,我们这里就是要注意这个,然后先是交换堆顶元素和最后一个元素的问题,就直接开始调整,但是调整的时候我们end并没有进行–,因为的size位置的参数表示的就是元素个素,然后我们调整的时候因为最后一个元素已经有序了,所以就不用在进行调整了。

 
 
 
 

还有一个TopK问题放在下一篇文章里,因为这样流量多哈哈哈哈哈,下篇文章见。

最新文章
穿新衣服发朋友圈的说说 穿上自己喜欢的新衣服发朋友圈的文案
  1.真的不配赢,我的狐狸不配穿新衣服  2.穿新衣服就是感觉好,怪不得那么败家!  3.感觉一开学我再也不是那个爱网购的我了,穿新衣服有什么用,还不是要从早到晚窝在实验室里  4.今天好多人问我热不热,说实话有点,但我就想穿新
四轮轮毂电机驱动车辆电机附加能量损耗、电机能量总损耗、轮胎滑移能量与车辆稳定性之间的协调优化控制
四轮轮毂电机驱动车辆电机附加能量损耗、电机能量总损耗、轮胎滑移能量与车辆稳定性之间的协调优化控制、仿真搭建整体采用分层控制策略。其中顶层控制器的任务是利用车辆状态信息、横摆角速度以及质心侧偏角的误差计算出维持车辆稳定性的期
Win10电脑定时关机怎么设置?3招帮你定时!
“真的快困死了!昨晚想下载一部电影,今天要在电影课上和同学们一起看,但是电影文件太大了,下到半夜也没下完,搞得我一晚上都没睡觉,就等着关电脑!再也不想这样了!”你有没有遇到过这样的烦恼?有时候晚上想早点休息,但是电脑里的下
服务支撑:用 RARRA 模型支撑的用户增长解决方案,助力开发者实现智能运营
得开发者得天下。平台负责能力、流程、工具、服务,开发者专注于场景、创意,打造优秀的软件应用,为用户提供极致无缝的体验,这种生态的平衡是平台得以长久的法则。然而,今天的移动开发比以往面临更多的挑战。终端越来越多样化,手机、手
[学习资料]会计年终总结模板[推广有奖]
会计年终总结模板(实用版)编制人:__________________审核人:__________________审批人:__________________编制单位:__________________编制时间:____年____月____日序言下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能
真我Neo7上手:质价比之王实至名归 同档无敌
在质价比手机市场中,用户最关注的无非就是芯片、续航、价格这几项“核心出装”,厂商也不再满足于单纯的旗舰配置下放,开始在影像、品质、设计方面发力,试图打造出一款玩家们手中的“版本T0”。作为Neo系列独立后的首款产品,真我Neo7贯
美漫:从复制超人天赋开始
  堪萨斯州小镇。  一望无际的玉米地前立着一个巨大的广告牌,上边写着“欢迎光临全球奶油玉米之都”几行大字。  将镜头拉远一些,一架直升机歪歪扭扭掠过苞米地掀起阵阵风浪吹动玉米秆。  这是一架小型直升机,舱内坐着一个金发男
欧帝洁热水器24小时人工400电话/专业快速响应 - 行业 - 百科知识-蓝心网
欧帝洁热水器售后24小时维修服务热线:400-658-8618。欧帝洁热水器全市各区售后服务点热线号码。☎:400-658-8618欧帝洁热水器售后服务,秉承“诚信为本、客户至上”的服务态度和“以客户为中心”的服务指导思想,不仅真诚地为用户提供先进
一图掌握,SEO工具简笔画解析搜索引擎优化秘诀
SEO工具简笔画以直观、易懂的方式展示了搜索引擎优化技巧,帮助用户快速学习并掌握关键SEO知识,提高网站排名和可见度。通过生动有趣的插画,简化复杂概念,让SEO变得轻松易懂。随着互联网的迅猛发展,(SEO)已成为企业提升网站排名、扩大
相关文章
推荐文章
发表评论
0评