我有数据(3 是主元):
281374
我从左向右移动两个指针
首先我有2和4所以我什么都不交换
然后我有 8 和 7 所以我交换并有:
273184
现在我在 3 和 1 有品脱,所以我交换:
271384
现在 left pointer = rightpointer - 1 所以我应该快速对这些进行排序:
271 | 384
分别对吗?
但如果我这样做,我会得到这样的东西:
127 | 348
这不是排序数据!
我错了什么?
最佳答案
问题是:
then i have 8 and 7 so i swap and have:
273184
您不会交换这些值。左边大于枢轴的所有东西都必须放在右边,右边低于枢轴的所有东西都必须放在左边。但是 7 和 8 都大于主元元素。
看到人们在跳快速排序算法: http://www.youtube.com/watch?v=ywWBy6J5gz8
HTH
关于algorithm - 如何使用我自己选择的数据透视表(逐步)对这些数据进行快速排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17277605/