我目前正在练习quicksort,它现在工作得很好。但我可以找到一个失败的例子(因为它似乎是一个特例,我还没有读过它,这就是为什么我做错了......不能解决它)。问题是,我想是因为我选择最小的元素作为主元:我的quicksort桌面测试似乎不正确
9 1 4 2 7 *0* (star mark means pivotelement)
现在我设定i,j
哪里i
将通过阵列(右移),直到它发现它比主元以上的元素。并且j
将通过Array(向左移动)直到找到一个低于枢纽元素的元素。找到了,我们切换i
和j
显示的元素。我们这样做直到i
和j
交叉(又名“j
在i
”之前)。在这种情况下,我们切换元件i
节目并索引i
与主元......我现在不想描述整个算法也将是长期的问题..
9 1 4 2 7 *0*
i j but now we cannot find a j that is lower than Pivotelement. What we do?
I would continue by switching i with pivotelement:
*0* 1 4 2 7 9
j i But now is the Problem that i and j are in other positions
(j is before i). I have no idea.. Please clarify and help..