Go语言数据结构算法(二十五)堆排序

堆排序算法是一种流行且高效的排序算法.原理是将数组的元素可视化为一种特殊的完全二叉树.称为堆.

1.使用场景:

大型数据集:堆排序相对于大型数据集是有效的.因为其他算法开销对性能影响比较大.

内存分配:堆排序算法是一种就地排序.它不需要额外的内存来保存排序后的元素.

排序优先级队列:堆排序算法通常用于对优先级队列中的元素进行排序.这是一种数据结构.它维护一组元素.每个元素都有一个优先级.

2.实现:

2.1方法:

package data type MaxHeapData struct { slice []int heapSize int } func BuildMaxHeap(slice []int) MaxHeapData { m := MaxHeapData{slice, len(slice)} for i := len(slice) / 2; i >= 0; i-- { m.MaxHeapify(i) } return m } // 创建最大堆对象. func (m MaxHeapData) MaxHeapify(i int) { l, r := 2*i+1, 2*i+2 maxHeap := i if l < m.Size() && m.slice[l] > m.slice[maxHeap] { maxHeap = l } if r < m.Size() && m.slice[r] > m.slice[maxHeap] { maxHeap = r } if maxHeap != i { m.slice[i], m.slice[maxHeap] = m.slice[maxHeap], m.slice[i] m.MaxHeapify(maxHeap) } } func (m MaxHeapData) Size() int { return m.heapSize } // 定义队排序. func HeapSort(slice []int) []int { m := BuildMaxHeap(slice) for i := len(m.slice) - 1; i >= 1; i-- { m.slice[0], m.slice[i] = m.slice[i], m.slice[0] m.heapSize-- m.MaxHeapify(0) } return m.slice }

2.2main方法:

func main() { array := []int{33, 23, 56, 7, 8, 18, 99, 28} heapSort := data.HeapSort(array) fmt.Println(heapSort) }

3.实战:

3.1方法:
package data type MaxHeapData struct { slice []int heapSize int } func BuildMaxHeap(slice []int) []int { for i := len(slice) / 2; i >= 0; i-- { slice = MaxHeapify(slice, i) } return slice } func MaxHeapify(array []int, i int) []int { l, r := left(i)+1, right(i)+1 maxHeap := i if l < len(array) && l >= 0 && array[l] > array[maxHeap] { maxHeap = l } if r < len(array) && r >= 0 && array[r] > array[maxHeap] { maxHeap = r } if maxHeap != i { array[i], array[maxHeap] = array[maxHeap], array[i] MaxHeapify(array, maxHeap) } return array } func (m MaxHeapData) Size() int { return m.heapSize } // 定义队排序. func HeapSort(slice []int) []int { m := BuildMaxHeap(slice) size := len(m) for i := len(m) - 1; i >= 1; i-- { m[0], m[i] = m[i], m[0] size-- MaxHeapify(m[:size], 0) } return m } func left(i int) int { return 2 * i } func right(i int) int { return 2*i + 1 }
3.2main方法:
func main() { array := []int{33, 23, 56, 7, 8, 18, 99, 28} heapSort := data.HeapSort(array) fmt.Println(heapSort) }

仰天大笑出门去.

如果大家喜欢我的分享我的话.可以关注我的微信公众号

念何架构之路

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

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

相关文章

思源黑体TTF:多语言设计难题的完整解决方案

思源黑体TTF&#xff1a;多语言设计难题的完整解决方案 【免费下载链接】source-han-sans-ttf A (hinted!) version of Source Han Sans 项目地址: https://gitcode.com/gh_mirrors/so/source-han-sans-ttf 在现代全球化设计环境中&#xff0c;处理中日韩多语言排版一直…

AI数据预处理为何成为LLM训练成败的关键因素?

AI数据预处理为何成为LLM训练成败的关键因素&#xff1f; 【免费下载链接】easy-dataset A powerful tool for creating fine-tuning datasets for LLM 项目地址: https://gitcode.com/gh_mirrors/ea/easy-dataset 当你准备训练一个高质量的LLM模型时&#xff0c;是否曾…

学术文档格式转换的终极解决方案:ScienceDecrypting免费解密工具

学术文档格式转换的终极解决方案&#xff1a;ScienceDecrypting免费解密工具 【免费下载链接】ScienceDecrypting 项目地址: https://gitcode.com/gh_mirrors/sc/ScienceDecrypting 你是否曾因加密的CAJ文献无法打开而烦恼&#xff1f;或者为PDF文档的使用限制而困扰&a…

群晖照片人脸识别终极解决方案:一键解锁AI智能分类

群晖照片人脸识别终极解决方案&#xff1a;一键解锁AI智能分类 【免费下载链接】Synology_Photos_Face_Patch Synology Photos Facial Recognition Patch 项目地址: https://gitcode.com/gh_mirrors/sy/Synology_Photos_Face_Patch 还在为群晖NAS无法使用人脸识别功能而…

Windows系统优化大师:一键解决卡顿、提升性能的终极指南

还在为Windows系统运行缓慢而烦恼吗&#xff1f;电脑开机慢如蜗牛&#xff0c;软件响应迟钝&#xff0c;存储空间告急&#xff1f;这些问题不仅影响工作效率&#xff0c;更让人心情烦躁。今天&#xff0c;我们将介绍一款专业的Windows系统优化工具&#xff0c;它能帮你一键修复…

Vue-Vben-Admin快速构建桌面应用:Electron实战完整指南

Vue-Vben-Admin快速构建桌面应用&#xff1a;Electron实战完整指南 【免费下载链接】vue-vben-admin 项目地址: https://gitcode.com/gh_mirrors/vue/vue-vben-admin 你是否曾想过&#xff0c;将功能强大的Vue-Vben-Admin后台管理系统打包成独立的桌面应用&#xff1f;…

百万Token革命:Qwen2.5-1M开源模型重构长文本处理范式

百万Token革命&#xff1a;Qwen2.5-1M开源模型重构长文本处理范式 【免费下载链接】Qwen2.5-14B-Instruct-1M 项目地址: https://ai.gitcode.com/hf_mirrors/Qwen/Qwen2.5-14B-Instruct-1M 导语 阿里云通义实验室正式开源Qwen2.5-1M系列大模型&#xff0c;首次将开源模…

2025年质量好的生态板用户口碑最好的厂家榜 - 行业平台推荐

2025年质量好的生态板用户口碑的厂家榜行业背景与市场趋势随着人们对家居环保要求的不断提高,生态板作为绿色建材的重要组成部分,近年来在装修市场中的需求持续增长。2024-2025年,中国生态板市场规模预计将达到1200…

COLMAP三维重建:7个实战故障排除技巧与深度优化策略

COLMAP三维重建&#xff1a;7个实战故障排除技巧与深度优化策略 【免费下载链接】colmap COLMAP - Structure-from-Motion and Multi-View Stereo 项目地址: https://gitcode.com/GitHub_Trending/co/colmap 当你第一次打开COLMAP处理自己的图像集时&#xff0c;是否遇到…

2025年质量好的进口品牌缓冲铰链厂家最新权威实力榜 - 行业平台推荐

2025年质量好的进口品牌缓冲铰链厂家权威实力榜行业背景与市场趋势随着全球家居五金行业的持续升级,缓冲铰链作为高端家具的核心配件,其市场需求呈现出稳定增长态势。2024年数据显示,全球缓冲铰链市场规模已突破85亿…

IntelliJ IDEA透明视频播放插件:工作休闲两不误的秘密武器

IntelliJ IDEA透明视频播放插件&#xff1a;工作休闲两不误的秘密武器 【免费下载链接】intellij-media-player 【&#x1f41f;摸鱼专用】上班偷偷看视频&#x1f4fa;而不会被老板打&#x1f528;的IDE插件&#xff0c;适配JetBrains全家桶 项目地址: https://gitcode.com/…

Ocelot中间件扩展实战:从业务痛点到生产部署的完整解决方案

Ocelot中间件扩展实战&#xff1a;从业务痛点到生产部署的完整解决方案 【免费下载链接】Ocelot 项目地址: https://gitcode.com/gh_mirrors/oce/Ocelot 你是否在微服务架构中遇到过这样的困境&#xff1a;标准API网关功能无法满足特定业务需求&#xff0c;但又担心自定…

StarGAN统一模型在多域图像生成中的革命性突破与深度解析

StarGAN统一模型在多域图像生成中的革命性突破与深度解析 【免费下载链接】stargan StarGAN - Official PyTorch Implementation (CVPR 2018) 项目地址: https://gitcode.com/gh_mirrors/st/stargan 多域图像生成技术近年来在计算机视觉领域备受关注&#xff0c;传统条件…

2025年比较好的蛇形帘厂家最新推荐排行榜 - 行业平台推荐

2025年比较好的蛇形帘厂家推荐排行榜行业背景与市场趋势随着现代建筑设计的不断演进和消费者对家居装饰要求的提升,蛇形帘作为一种兼具功能性与美观性的窗帘系统,近年来在国内外市场获得了显著增长。蛇形帘以其独特的…

如何免费获取Scribd电子书:2025年完整指南与实用教程

在数字阅读日益普及的今天&#xff0c;Scribd作为全球知名的在线图书馆平台&#xff0c;为用户提供了海量的电子书资源。然而&#xff0c;许多用户都面临着想要离线阅读却无法获取的困境。scribd-downloader作为一款开源免费的Scribd电子书获取工具&#xff0c;能够帮助用户轻松…

2025年五大封闭式冷却塔厂推荐,专业厂家排行榜新测评 - mypinpai

为帮工业企业高效锁定适配自身冷却需求的封闭式冷却塔供应商,避免因设备选型失误导致产能损失、成本超支,我们从核心技术实力(如换热效率、节能表现)、产品定制能力(适配不同行业工况)、全周期服务质量(安装调试…

视频字幕提取终极指南:AI技术如何实现48倍速高效处理

视频字幕提取终极指南&#xff1a;AI技术如何实现48倍速高效处理 【免费下载链接】SubtitleOCR 快如闪电的硬字幕提取工具。仅需苹果M1芯片或英伟达3060显卡即可达到10倍速提取。A very fast tool for video hardcode subtitle extraction 项目地址: https://gitcode.com/gh_…

1200页Cplex中文教程:从零基础到实战精通

1200页Cplex中文教程&#xff1a;从零基础到实战精通 【免费下载链接】Cplex中文教程全资源下载 Cplex中文教程全资源下载 项目地址: https://gitcode.com/Open-source-documentation-tutorial/5a735 还在为优化问题求解而烦恼吗&#xff1f;Cplex作为业界领先的数学优化…

2025年比较好的高端展厅设计/企业展厅设计科技智能展厅设计榜 - 行业平台推荐

2025年高端展厅设计/企业展厅设计科技智能展厅设计榜:引领未来的空间叙事艺术 行业背景与市场趋势 随着数字化转型与体验经济的深度融合,企业展厅已从单一的产品展示空间升级为品牌战略的核心载体。据《2024全球商…

2025年质量好的隧道炉厂家最新权威实力榜 - 行业平台推荐

2025年质量好的隧道炉厂家权威实力榜行业背景与市场趋势随着工业自动化水平的不断提升和环保要求的日益严格,隧道炉作为涂装、烘干、热处理等工艺的关键设备,在汽车制造、家电生产、电子元件加工等行业中扮演着越来越…