Dzień dobry, jeśli mamy dany następujący szereg liczb:
2 5 5 4 3 1 1
To w celu posortowania wybieramy liczbę w środku szeregu (pivot), oraz dwa wskaźniki, jeden na początku i drugi na końcu. Następnie sprawdzamy czy liczba pod wskaźnikiem lewym jest większa od pivota i jeśli tak, to sprawdzamy czy liczba pod wskaźnikiem prawym jest od pivota mniejsza. Jeśli tak to wtedy zamieniamy obie liczby, a jeśli nie to wskaźnik prawy cofamy o jedno oczko i znów porównujemy liczby. I tak do momentu gdy wskaźniki spotkają się w środku, i powtarzamy cała procedurę dla dwóch podszeregów rozdzielonych pivotem. Mój problem jest następujący, co jeśli, tak jak w podanym przeze mnie przypadku, ilość liczb nadających się do zamiany jest różna po obu stronach pivota ? Postępując zgodnie z w.w. instrukcją wykonamy następujące kroki:
2 5 5 4 3 1 **1 **
2 5 5 4 3 1 1 zamiana
2 1 5 4 3 1 5 zamiana
2 1 1 4 3 5 5 lewy wskaźnik doszedł już do pivota więc nie ma z czym wymieniać, a po prawej stronie wciąż jest liczba mniejsza od pivota.