我从解决方案中获得了不同的quicksort结果

时间:2019-01-10 14:51:53

标签: algorithm sorting quicksort theory

问题是要对单词ELECTRONIC快速排序。我正在手动处理每一行,并且逐步给出了解决方案。第一步之后,我与解决方案的状态有所不同,并且不明白为什么。

我从ETC的中位数(位置0,4和9)中选择枢轴,然后选择E。此枢轴与最后一个位置9交换,并给出:

0123456789
CLECTRONIE

我将i从左侧的C递增,将j从右侧的I递减,并最终交换位置1({L)和4(C)给出< / p>

0123456789
CCELTRONIE

继续分别递增和递减i和j,最终在第3个位置L与i交叉,并与第9个位置的枢轴交换,得到:

0123456789
CCEETRONIL

现在枢轴位于位置3,我以为分区应该是

CCE |E| TRONIL

但我有解决方案:

Quicksort ELECTRONIC
choose pivot: median(E,T,C)=E
partition using E: ECC|E|LTRONI
...

我知道Sl和Sr中的字母相同,但是我认为顺序很重要。谁能确定我哪里出了问题,或者解决方案如何获得这种状态?任何事情都值得赞赏。

1 个答案:

答案 0 :(得分:2)

您的分区达到了主要目标-左侧部分包含较少(或相等)的元素,右侧部分包含较大的元素。分区完成。任务 (当前阶段)已成功完成。

这些部分中元素的顺序取决于分区实现(有不同的方案),并且不影响排序的正确性和速度。