一文详解快速排序到底是怎么排的

1、快速排序精髓

     一、先从数列中取出一个数作为基准数

     二、分区,将比这个数大的数全放到它的右边,小于或等于它的数全部放到它的右边

     三、对左右区间重复步骤(二),直到各区间只有一个数为止

2、详解排序过程

     假设一下数列

     12 30 17 9 8 20 3

     我们选取第一个数12为基准数,第一回合,从后往前找出一个比基准数12小的数,是3,所以我们将3和基准数进行对换,得:

     3 30 17 9 8 20 12

     接着,我们从前往后,找出第一个比基准数12 大的数,是30,将30与基准数交换,得:

     3 12 17 9 8 20 30

     继续从刚刚基准数交换之前的位置往前找第一个比12小的数,是8,所以与基准数交换,得:

      3 8 17 9 12 20 30

      继续从刚刚基准数交换之前的位置往后找第一个比12大的数,是17,所以与基准数交换,得:

      3 8 12 9 17 20 30

      继续从刚刚基准数交换之前的位置往前找第一个比12小的数,是9,所以与基准数交换,得:

      3 8 9 12 17 20 30

      这时,比基准数小的数都在基准数前面;比基准数大的数都在基准数后面,所以本轮快排结束,剩下的就是对基准数左右两边的数列在分别进行上述步骤,直到各个区间只有一个数为止。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值