快速排序算法简介

  快速排序是一种常用的排序,比选择排序快很多。我们来探讨一下快速排序实现的思想步骤。

 1.首先选定一个基准值

2.将大于基准值的元素放右边

3.将小于基准值的元素放左边

4.分别对左右子序列重复以上三步骤

举例说明:

10  20  9   15   1   8

假设选定最左边的10为基准值,我们假定有两个下标L,R

1.从右边开始,将比基准值大的放右边,小于等于的放左边。这里8比基准值10小,所以移动到左边

2.移动完R下标的时候,交替移动L下标,这里L指向了20,大于基准值10,所以移动到右边

3.现在再次交替移动下标R,得到:

因为1比基准值10小,所以有:

4.现在交替移动下标L ,得到:

此刻,L下标指向9,然后9比基准值10小,因为此刻正处于下标L,9不用往左移动,在这种情况下,需要继续将下标L往右移动,指向15,而15大于基准值10,所以放到右边

5.现在交替移动下标R, 此时L,R下标重合,这时候,就把基准值10,放到下标重合的位置,得到:

然后再对基准值左右两个子序列,重复以上步骤操作,直到序列长度为1(因为对于长度为1的序列不需要排序)。

这里用到了递归的思想,即可最终实现排序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值