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

武汉古倪环保科有限公司 2026/09/09 18:28:24

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 一、堆排序定义
  • 二、时间复杂度
  • 三、实现思路
    • 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个最小的数同理可得。

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

网站建设论文永州网站建设

Docker环境配置终极指南:从开发到生产的一致性管理【免费下载链接】docker-curriculum:dolphin: A comprehensive tutorial on get

2026/06/30 11:13:54

河南网站建设黄冈网站建设

大麦抢票助手:智能自动化抢票解决方案【免费下载链接】damaihelper大麦助手 - 抢票脚本项目地址: https://gitcode.com/gh_mirrors/dam/dama

2026/06/30 11:41:27

建设网站公司乐清网站建设

PaddlePaddle数据加载瓶颈分析与提速方法在现代深度学习训练中,我们常常会遇到这样一种“怪象”:明明配备了高端GPU,监控工具却显示显卡利用率长期徘徊

2026/06/30 13:55:08

网站建设心得永州网站建设

Nuklear命令式UI替代方案:从传统框架到轻量级实战指南【免费下载链接】NuklearA single-header ANSI C immediate mode cross-plat

2026/06/30 13:35:06

云南网站建设海口网站建设

目录具体实现截图项目介绍论文大纲核心代码部分展示可定制开发之亮点部门介绍结论源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作具体实现截图本系统(程

2026/06/30 13:02:34

广州网站建设工作室建设官方网站

百度网盘下载速度革命:解锁全速下载的实战手册【免费下载链接】baidu-wangpan-parse获取百度网盘分享文件的下载地址项目地址: https://gitcode.com/gh_

2026/06/30 11:17:54

建设厅网站首页定制网站建设

Langchain-Chatchat边缘计算应用:物联网设备端智能问答尝试在工业现场,一名技术人员正面对一台故障设备。他掏出平板,语音提问:“如

2026/06/30 12:17:00

荆门网站建设上海外贸网站建设

3个场景带你玩转Venera漫画阅读器:从入门到精通的实战分享【免费下载链接】veneraA comic app项目地址: https://gitcode.com/gh_mirrors/

2026/06/30 12:14:30

佛山网站建设襄樊网站建设

Gofile批量下载神器:3步解决文件管理难题【免费下载链接】gofile-downloaderDownload files from https://gofile.io项目地址: ht

2026/06/30 11:10:24