快速排序在排标兵时,为什么需要从基数的对面开始?

今天周末,复习了一下快速排序的实现。我在手写实现的过程中,基数取的是低指针的值,但是我在开始排标签时,先从左边的开始排,导致结果错了。

我就很纳闷,为什么不可以从相同的方向开始排,一定要从基数的对面开始?

于是乎我看了一下排序的过程,发现确实会发生数据错乱。

我上网查了一下,绝大多数的回答都是同一篇,那篇回答也只是帮忙捋了一下排序的过程,然后证明不行。但是我感觉没有说到点上。

我自己思索了很久,发现如果当排基数时,如果从相同方向开始,当第一个方向排完之后,排第一个方向时,基数的位置与要排的方向是相反的。

如图:
在这里插入图片描述
大概就是这样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值