排序之快速排序

本文详细介绍了快速排序的思想,通过图示和具体步骤解析了快速排序的过程,包括如何选择中轴,如何移动数字以及如何递归地进行排序。并提供了相应的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

快速排序思想

这里按照从小到大排序讲解,快速排序是把一组数字中的一个数作为中轴,然后把数组中的比中轴大的数都移动到中轴的右边,把比中轴小的数都移动到中轴的左边。当移动过后再将中轴两边的数字分别进行上述操作,直到最后无法再分便完成排序。其实该过程是一个递归的过程。

图示

这里以 3 6 4 2 5 1 3 这组数字为例,为了便于处理,约定每次都把最左边的数字作为中轴。

1. 首先把最左边的3作为中轴,并在数组的最左边和最右边分别设置一个索引用于遍历数组。

2. 然后约定右边的索引先向左遍历,当遇到比中轴小的数字时停止遍历,然后此时把右边索引指向的数字移至左边索引的位置。

3. 右边的索引的数字移至左边后,开始让左边的索引向右依次遍历,当遇到比中轴大的数字时停止遍历,然后此时把左边索引指向的数字移至右边边索引的位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值