Czytam o quicksort, patrząc na różne implementacje i staram się owinąć mi głowę.Quicksort: pozycja obrotu po jednej partycji
W this realizacji robót (które oczywiście), osią jest wybrany jako środkowego elementu a następnie lewy i prawy wskaźnik przesunie się w prawo i lewo odpowiednio, wymieniając elementy do podziału wokół przegubu.
Próbowałem tablicy [4, 3, 2, 6, 8, 1, 0].
W przypadku pierwszej partycji wartość przestawna wynosi 6, a wszystkie elementy po lewej stronie są już mniejsze niż 6, więc wskaźnik po lewej stronie zatrzyma się w osi przestawnej. Po prawej stronie zamieniamy 0 na 6, a następnie na 1 i 8, więc na końcu pierwszej iteracji tablica będzie wyglądać następująco:
[4, 3, 2, 0, 1, 8, 6].
Jednak miałem wrażenie, że po każdej iteracji w quicksort, pivot kończy się na właściwym miejscu, więc tutaj powinien się znaleźć w pozycji 5 tablicy.
Czy możliwe jest (i ok), że oś nie kończy się w poprawnej iteracji, czy jest to coś oczywistego, czego mi brakuje?
Dzięki za dokładne napisanie, dzięki temu stało się ono bardziej przejrzyste. – kenny