答案 0 :(得分:1)
在字母下面使用^
表示它是一个支点,*
表示它已经被转动了。如果一个分区有奇数长度,我选择“向下舍入中间”(分区长度4将第二个项目作为枢轴)。
请注意,在第4行中,有两个R
,其中一个是枢轴。在这种情况下,副本(另一个R
)可以在任何一方出现。
编辑:比较两个字母时,您需要根据字母中的位置对它们进行排序。如果你根据他们的相对位置“排序”,那么你永远不会自然地移动任何元素,你永远不会对列表进行排序。
编辑#2:我正在使用的算法不出所料quicksort。
MERGESORT -> EEMRGSORT
^ ^
EEMRGSORT -> EEMRGORST
^* ^ ^* ^
EEMRGORST -> EEGMRORST
** ^ *^ **^ **
EEGMRORST -> EEGMORRST
*** ^ ** *** ^ **
EEGMORRST -> EEGMORRST
***^ *^** ***^ *^**
EEGMORRST -> EEGMORRST
****^**** ****^****
EEGMORRST -> Complete
*********
如果我犯了错误,请纠正我。