我用快速排序算法来排序
11 8 9 4 2 5 3 12 6 10 7
我得到了名单:
4 3 2 5 9 11 8 12 6 10 7.
5被用作支点。现在我被困住了如何对上下级列表进行排序?
枢轴=5 11 8 9 4 2 5 3 12 6 10 7
将枢轴移到位置0 5 8 9 4 2 11 3 12 6 10 7
I(位置1=8)
J(位置6=3)–交换8和3 5 3 9 4 2 11 8 12 6 10 7
i(位置2=9)
J(位置4=2)–交换9和2 5 3 2 4 9 11 8 12 6 10 7
I(位置3=4)
–元素不小于5–“交换5和4 4 3 2 5 9 11 8 12 6 10 7”
–在分区后列出
最佳答案
快速排序是一种递归算法一旦按轴对元素进行排序,就会得到两组项第一个元素小于或等于轴,第二个元素大于轴。现在,您要做的是再次对这些集合中的每一个应用快速排序(使用适当的轴)。
为此,每次都必须选择新的轴心你可以做一些事情,比如总是选择第一个元素,或者随机画一个。
一旦到达集合只包含一个元素的点,就停止。
理解这些事情的一个好方法是尝试使用这个算法对一副牌进行排序。所有的牌都是正面朝下的,你一次只能看两张牌,比较一下,必要时可以换一下。你必须假装不记得任何一张正面朝下的牌。