双路快速排序这里的边界条件是否可以更改?
来源: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
没有问题,你是对的。程序的逻辑依然正确:)
继续加油!:)
122019-10-29
相似问题
我发现课程的双路快排和三路快排有区别
回答 2
快速排序的划分
回答 3