快速排序 升序要从右开始的原因

本文详细解析了基数排序中正确的选择和交换原则,强调了从右往左选择较小元素、从左往右选择较大元素进行交换的方法,并给出了具体的实现代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基数选在左边 也就是6 

这里写图片描述 
正确:从右往左选小的,从左往右选大的交换

从右选到2,从左碰到i=j,所以交换26,->21679

错误:从左往右选大的,从右往左选小的

从右选到7,从左没有比6小的,碰到i=j,交换67,->71269  出错!

 

所以要从右边开始,也就是从基准数的对面开始。

while (nums[j] >= index && j > i) {
    j--;
}

while (nums[i] <= index && i < j) { 
    i++; 
}

降序:从左往右选小的,从右往左选大的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dr. 卷心菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值