快速排序算法

本文详细介绍了快速排序算法的思想,包括确定分界点、调整区间和递归处理的步骤。文章通过两种方法(暴力与优美)解释了如何实现第二步,并提供了两个例题,分别演示了对整数数列进行快速排序和快速选择的操作。
摘要由CSDN通过智能技术生成


快速排序

一、快速排序算法思想

(1)确定分界点:一般分界点有三个点可以来取用,左边界 q [ l ] q[l] q[l],右边界 q [ r ] q[r] q[r],中间值 q [ l + r > > 1 ] q[l + r >> 1] q[l+r>>1];
(2)调整区间:通过 x x x 的值划分为左右两个区间,使得左边区间的的所有数都 ≤ \leq x x x,第二个区间的所有数都 ≥ \geq x x x;(注意:调整区间后,分界点的值不一定是 x x x x x x 这一值可能在左区间,也可能在右区间。
(3)递归处理左右两段:左侧区间的最大值始终 < < < 右侧区间的最小值,递归结束后使得整个区间有序。

该算法中第二步为难点
实现第二步有两种做法:一是暴力做法;二是优美做法。
一、暴力做法:最简单的思路
q [ l ∼ r ] q[l \sim r] q[lr] 中每个字符跟 x x x 比较,如果比 x x x 小则放入 a [ ] a[ ] a<

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值