快速排序

快速排序体现的是一种分治法的思想。这里用一个例子来说明,有一个数组,6  1  2 7  9  3  4  5 10  8, 将这10个数进行排序。

第一步,先选一个基准数,这里为了方便,我们就选择第一个数6,我们需要做的就是找到一个位置k,使得k一边的数字全都小于这个基准,另一边的数字都大于这个基准。类似这样,3  1  2 5  4  6  9 7  10  8。

方法很简单,分别从两侧开始验证,start = 0, end = 9。end一侧的指针先移动,找比基准小的数。移动到5,start一侧的指针再移动,找到比基准大的数7.交换。

end一侧的指针接着移动,移动到4,start一侧的指针移动到9.交换。两边的指针都移动到3.相遇,于是停止移动。交换现在指针所指的元素和基准元素3和6。

现在的数组是,3  1  2 5  4  6  9  7 10  8。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值