【发布时间】:2014-10-23 22:02:08
【问题描述】:
我看到以前有人问过类似的问题,但我已经搜索了一段时间,似乎找不到答案。
我现在的任务是使用快速排序算法对一个包含 7 个字母的简单数组进行排序。 我们需要显示排序的每一步,每次都强调枢轴。 我们的讲师要求我们使用最右边的值作为每一步的支点。 基于这个视频,https://www.youtube.com/watch?v=aQiWF4E8flQ,这是我目前所拥有的(以粗体显示):
GACEFBD
A|GCEFBD
AC|GEFBD
ACB|EFGD
ACBD|FGE
但我不确定从这里去哪里。在分区的左侧,D 是枢轴,但没有大于 D 的值。那么枢轴到哪里去了? 我看过的每个教程都使用 3 的中位数作为枢轴,或者最左边,而我并不是最擅长算法的。
B 部分让我们展示了使用相同规则排序 ABCDEFG 的每一步。不知道从哪里开始,因为我有同样的问题。 对不起,如果这是一个愚蠢的问题。
【问题讨论】:
-
嗯,你有一个像选择轴一样的东西。在纸上效果很好,而不是在二进制数组中。在实际代码中,我们使用不同的枢轴策略。不过与你的作业无关。
-
在我们提供的代码中,枢轴是通过查找数组的中值来选择的,这是有道理的。我认为我们的教授希望我们将轴心更改为最右边的值,以说明最坏情况的运行时间。
标签: algorithm sorting quicksort