【问题标题】:I get a different quicksort results from the solution我从解决方案中得到不同的快速排序结果
【发布时间】:2019-01-10 14:51:53
【问题描述】:

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

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

0123456789
CLECTRONIE

我从左侧的C 增加 i 并从右侧的I 减少 j 并最终交换位置 1(L) 和 4(C) 给予

0123456789
CCELTRONIE

继续分别递增和递减 i 和 j,最终在位置 3 与 i 交叉,L,这与位置 9 处的枢轴交换给出:

0123456789
CCEETRONIL

现在枢轴在位置 3,我认为分区会是

CCE |E| TRONIL

但我的解决方案是:

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

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

【问题讨论】:

标签: algorithm sorting quicksort theory


【解决方案1】:

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

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

【讨论】:

  • 是的,我想就是这样。甚至可能他的答案是在演示需要在哪里进行,而他正在跳过代码的实际步骤,而这只是为了演示正在发生的事情。也许我很容易被困在细节上……
猜你喜欢
  • 2012-08-08
  • 2016-02-22
  • 2012-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多