数据结构之快速排序、堆排序概念与实现举例

1、快速排序

快速排序是一种高效的排序算法,采用分治法策略。它的基本思想是:通过一个划分操作,将待排序的数组分为两个(尽可能)均等的子数组,使得左侧子数组中的所有元素都不大于右侧子数组中的任何元素,然后对这两个子数组分别进行快速排序,整个排序过程可以递归进行,以此达到整个序列有序。

2、堆排序概念与实现举例

堆排序是一种基于比较的排序算法,它利用堆这种数据结构所设计。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子节点的键值或索引总是小于(或大于)它的父节点。

实现举例:

将初始待排序序列构造成一个大顶堆,此时,整个序列的最大值就是堆顶的根节点。

将其移走(其实就是将其与堆数组的末尾元素交换,此时末尾元素就是最大值),然后将剩余的n-1个序列重新构造成一个堆,这样就会得到n个元素的次小值。

重复执行步骤2,直到堆中剩余元素为1,排序完成。

相关推荐
闲看云起12 小时前
LeetCode-day6:接雨水
算法·leetcode·职场和发展
没学上了12 小时前
VLM_一维离散卷积与二维离散卷积(还是复习感觉还行)
算法
hashiqimiya12 小时前
springboot事务触发滚动与不滚蛋
java·spring boot·后端
黛色正浓13 小时前
leetCode-热题100-贪心合集(JavaScript)
javascript·算法·leetcode
PPPHUANG13 小时前
一次 CompletableFuture 误用,如何耗尽 IO 线程池并拖垮整个系统
java·后端·代码规范
轻微的风格艾丝凡13 小时前
嵌入式定时器计时技巧:用有符号数省略溢出判断的底层逻辑与实践
数据库·算法·dsp开发·嵌入式软件
恩创软件开发13 小时前
创业日常2026-1-8
java·经验分享·微信小程序·小程序
No0d1es13 小时前
2025年12月 GESP CCF编程能力等级认证C++四级真题
算法·青少年编程·等级考试·gesp·ccf
CodeByV13 小时前
【算法题】快排
算法