双路快速排序这里的边界条件是否可以更改?

来源:3-5 快速排序法 - Quick Sort

厥~~~

2019-05-16

老师我认为i>=j时候就可以直接break掉了不需要进行后面的判断,因为当i=j时候也就是那个特殊的位置元素一定是v这个数值大小,而且自己和自己交换也没有意义。最后仍然满足快速双路快速排序的性质,即左边的元素都是小于等于v,右半的元素都是大于等于v。虽然l交换的位置一个是j一个是j-1但是不影响结果。图片描述

写回答

1回答

liuyubobobo

2019-05-16

如果你的意思是将 if(i > j) break

改成 if(i >= j) break


没有问题,你是对的。程序的逻辑依然正确:)


继续加油!:)

1
2
liuyubobobo
回复
何时才能成大佬
上面的回答有问题,我已经在原回答上进行了补充。i >= j 的时候 break 掉没有问题。
2019-10-29
共2条回复

算法与数据结构(C++版) 面试/评级的算法复习技能包

课程专为:短时间内应对面试、升职测评等艰巨任务打造

11187 学习 · 1614 问题

查看课程