将Quicksort应用于列表M,E,R,G,E,S,O,R,T

时间:2017-07-19 11:50:58

标签: algorithm quicksort

enter image description here我一直试图分析 Quicksort 对上述输入的操作。但是当我遇到 2个相等元素遍历列表时,我不知道该怎么办。有人可以帮我跟踪以上快速排序对上述输入的影响吗?第一个元素应该是PIVOT

1 个答案:

答案 0 :(得分:1)

在字母下面使用^表示它是一个支点,*表示它已经被转动了。如果一个分区有奇数长度,我选择“向下舍入中间”(分区长度4将第二个项目作为枢轴)。

请注意,在第4行中,有两个R,其中一个是枢轴。在这种情况下,副本(另一个R)可以在任何一方出现。

编辑:比较两个字母时,您需要根据字母中的位置对它们进行排序。如果你根据他们的相对位置“排序”,那么你永远不会自然地移动任何元素,你永远不会对列表进行排序。

编辑#2:我正在使用的算法不出所料quicksort

MERGESORT -> EEMRGSORT
    ^         ^

EEMRGSORT -> EEMRGORST
^*   ^       ^*     ^

EEMRGORST -> EEGMRORST
**  ^  *^    **^    **

EEGMRORST -> EEGMORRST
*** ^  **    ***  ^ **

EEGMORRST -> EEGMORRST
***^ *^**    ***^ *^**

EEGMORRST -> EEGMORRST
****^****    ****^****

EEGMORRST -> Complete
*********

如果我犯了错误,请纠正我。