浅析快速排序,快速理解

快速排序(Quicksort)是对冒泡排序的一种改进。
此快速排序需要用到三个参数,基准数X,起始指针begin和末尾指针end.
基本思想(按照升序):

  1. 从一个数列中取出一个数作为基准数
  2. 分区的过程中,目的是将比基准数小的数放在基准数的左边,将比基准数大的数放在基准数的右边,直到起始指针大于等于末尾指针时结束排序,这样一轮排序之后,就保证了第一轮的排序.
  3. 重复此操作对基准数的左区间的数以及右区间的数.
    举例:
    第一步:
    X=21, begin= 0,end =9

0 1 2 3 4 5 6 7 8 9
21 32 43 98 54 45 23 4 66 86

第二步:(开始排序)
从end开始从后往前比较,目的:找出比基准数X小的值,依次比较找到index=7的位置,将4与基准值21互换,此时begin=0,end=6,此时就将无序区间缩小,区间之外的就已经满足规则.

0 1 2 3 4 5 6 7 8 9
4 32 43 98 54 45 23 21 66 86

第三步:
从end开始从前往后比较,找出第一个比X值大的数,依次比较找到index=1的位置,将32与21交换,此时begin=2,end=6.

0 1 2 3 4 5 6 7 8 9
4 21 43 98 54 45 23 32 66 86

第四步:
从end开始从后往前比较,找到第二个比X值小的数,此时end=0,end<begin,结束第一轮比较.

码字不易,希望能帮助到大家,CT还会继续更新

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值