1
我快速的體悟是快速排序與中間元素爲支點
- 選擇在極端樞軸元素(在這種情況下,我選擇中間的元素作爲 支點)
- 初始化左右指針。
- 找到大於樞軸的樞軸左側的第一個元素。
- 類似地找到的第一個元素到比樞軸更小,3發現
- 交換元件4
- 重複3,4,5-除非左> =右樞軸的右側。
- 重複整個事情的左側和右側的數組,因爲樞軸現在放置在它的地方。
我相信我在這裏失去了一些東西,很愚蠢。但以上似乎並沒有這個陣列工作:
8,7,1,2,6,9,10,2,11 pivot: 6 left pointer at 8, right pointer at 11
2,7,1,2,6,9,10,8,11 swapped 2,8 left pointer at 7, right pointer at 10
現在是什麼?右側沒有小於6的元素。 7將如何去右邊6?
感謝您的答覆@Codo。所以在這個特殊情況下,我的遞歸調用將會是什麼樣子?我試圖理解的是我似乎在任何地方遇到的聲明的有效性 - 「樞軸左側的所有元素都更小,並且在迭代結束時右側的值將更大」... I明白樞軸可以移動..但我不明白它是如何在上述情況下移動。 – Walt
等着聽你的迴音。 :) – Walt
@Walt看起來是我的更新 – Codo