每天一点算法-堆排序(Day10)

简介: 每天一点算法-堆排序(Day10)

介绍

为了能更好的理解堆排序,前两篇"插播"了它的相关知识(二叉树)。特别了解了的相关概念以后就很好理解堆排序了。堆排序的逻辑:

1.将待排序数数组映射为完全二叉树(忘了的同学请看二叉树的介绍);

2.将完全二叉树转换为小根堆(升序时需要)或者大根堆(降序需要);

3.不断的弹出根(即pop操作,忘了的同学请看),存放到一个已排序数组直到空树

例子

以老数组[77, 6, 37, 96, 34, 6, 14]为例。

先建立小根堆:
(还没写完,这两天实在是时间紧,改天补上!)

时间复杂度

感谢阅读!欢迎关注!持续更新中...
相关文章
|
3天前
|
机器学习/深度学习 人工智能 算法
数据结构与算法:堆排序和TOP-K问题
朋友们大家好,本节内容来到堆的应用:堆排序和topk问题
数据结构与算法:堆排序和TOP-K问题
|
3天前
|
存储 人工智能 算法
深入浅出堆排序: 高效算法背后的原理与性能
深入浅出堆排序: 高效算法背后的原理与性能
52 1
|
3天前
|
移动开发 算法 前端开发
前端算法之堆排序
前端算法之堆排序
15 1
|
3天前
|
人工智能 搜索推荐 算法
sort-04-heap sort 堆排序算法详解
这是一个关于排序算法的系列文章摘要,包括了10篇关于不同排序算法的链接,如冒泡排序、快速排序、选择排序、堆排序等。堆排序是一种基于比较的排序算法,利用了近似完全二叉树的结构并满足最大堆或最小堆的性质。最大堆中,每个节点的值都大于或等于其子节点。文章详细解释了最大堆的概念、节点访问方式以及堆的操作,包括堆调整和堆排序的过程,并通过图解展示了堆排序的具体步骤。此外,还提供了一个Java实现的堆排序代码示例。整个排序系列来源于一个开源项目,读者可以通过链接查看完整内容。
sort-04-heap sort 堆排序算法详解
|
3天前
|
算法
堆排序+TopK问题——“数据结构与算法”
堆排序+TopK问题——“数据结构与算法”
|
3天前
|
算法 搜索推荐 数据挖掘
【算法与数据结构】堆排序&&TOP-K问题
【算法与数据结构】堆排序&&TOP-K问题
|
3天前
|
搜索推荐 算法
【八大经典排序算法】堆排序
【八大经典排序算法】堆排序
13 0
|
3天前
|
搜索推荐 算法
【排序算法】堆排序详解与实现
【排序算法】堆排序详解与实现
|
3天前
|
搜索推荐 C语言
排序算法-选择/堆排序(C语言)
排序算法-选择/堆排序(C语言)
13 0
|
3天前
|
搜索推荐 算法 Java
【数据结构排序算法篇】----堆排序【实战演练】
【数据结构排序算法篇】----堆排序【实战演练】
25 2