网站建设总结建设官方网站

广东省华晟鼎创新材料有限公司 2026/09/09 20:27:21

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 一、堆排序定义
  • 二、时间复杂度
  • 三、实现思路
    • a.注意(升/降)
  • 四、topk问题

前言

常见的基本排序算法有冒泡、选择、插入,但效率太低。
堆排序和快速排序算法则是相对高效的算法。这篇主要先介绍堆排序


一、堆排序定义

堆排序就是借助(大/小)堆的特性,实现的快速排序

二、时间复杂度

时间复杂度:N * log2
本质就是建堆后,借助堆来调整N个数的位置,每次调整时间为堆高度log2

三、实现思路

(以小堆为例)

  1. 先将数据建小堆,此时堆顶是最小值。
  2. 将堆顶元素与数组末尾的元素交换,此时最小值被放到数组末尾。
  3. 将堆的有效长度-1,末尾元素视为已排序,不参与后续调整。
  4. 对堆顶的元素进行向下调整,使其重新满足小堆的特性
  5. 重复上述过程,直到堆的有效长度为1
//实现堆排序————时间复杂度:N * logN (一次向下调整是N, 执行N次)voidHeapSort(int*a,intn){//1、建堆for(inti=(n-1-1)/2;i>=0;i--)//需要从最后一个节点的父亲节点,开始向下调整{AdjustDown(a,n,i);}//2、将排序好的最小值,排出堆排序的范围intend=n-1;//3、再一直对根节点实现向下调整while(end>0){swap(&a[0],&a[end]);//再次选择最小的值AdjustDown(a,end,0);end--;}}

至此,实现了数组的降序排列

a.注意(升/降)

排升序,建大堆
排降序,建小堆

因为每次堆顶会和数组末尾的元素交换


四、topk问题

N个数中找出最大或最小的前K个数?

最优方案:建立一个K的数的堆。
如果想找K个最大数就建小堆,想找K个最小数就建大堆
(以小堆为例)

遍历N-K个数,凡是比堆顶大的数就替换堆顶数据,进堆向下调整。
(因为堆顶的数总是较小的)最后剩下的k个数就是前K个最大的数。

前K个最小的数同理可得。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

北京网站建设涪陵网站建设

毕业季选 AI 写论文工具,就像在雷区中找捷径 —— 有的文献引用查无此篇,有的 AI 痕迹重到被导师驳回,有的数据图表全是虚拟模板,试遍 9

2026/06/30 10:23:49

信阳网站建设企业网站建设的

当你的iPhone陷入激活锁困境时,AppleRa1n提供了一种简单有效的解决方案。这款专业工具专门针对iOS 15-16系统的设备设计,能够帮助用户在离线环境下快速解决激

2026/06/30 11:36:56

遵义网站建设荥阳网站建设

电视盒救砖神器:深入实战 usb_burning_tool 刷机全流程你有没有遇到过这样的情况?手里的电视盒子突然开不了机,反复重启、卡在开机画面࿰

2026/06/30 11:03:23

英文网站建设成都建设网站

Llama-Factory 是否具备训练资源消耗预测能力?一场关于“估算”与“感知”的深度探讨在大模型时代,一个看似简单却频频困扰开发者的问题是:我这台 24

2026/06/30 11:26:25

滁州网站建设大良网站建设

5步轻松搭建个人音乐库:洛雪音源完整配置教程【免费下载链接】lxmusic-lxmusic(洛雪音乐)全网最新最全音源项目地址: https://gitcode.com/gh_mirro

2026/06/30 13:49:37

网站建设合同宝应网站建设

Python-Chess实战开发:构建专业级象棋应用系统【免费下载链接】python-chessA chess library for Python, with move generat

2026/06/30 11:56:58

佛山网站建设兰州网站建设

你好,研究者在每一个深夜的实验室灯光下,在每一份铺满文献的书桌前,我们都能看到你——那位在学术道路上独自跋涉的探索者。你知道研究课题的价值,你理

2026/06/30 12:20:30

网站建设合同行业网站建设

7大AI论文工具核心对比工具名称核心功能查重优化适用场景效率评分AiBiye论文全流程辅助智能降重从选题到定稿★★★★★AiCheck查重与降重深度降重算法论文修改阶段★★★★☆AskPaper文献阅

2026/06/30 12:47:33

宝安网站建设福田网站建设

Firebase Admin PHP SDK:企业级后端开发的终极解决方案【免费下载链接】firebase-phpUnofficial Firebase Admin SDK for PH

2026/06/30 12:30:02