Ograniczenie rekursji Wysoka wydajność algorytmu sortowania szybkiego predestynuje go do przetwarzania dużych tablic. Takie zastosowanie wymaga jednak zwrócenia szczególnej uwagi na głębokość rekursji. Głębokość rekursji wiąże się bowiem z wykorzystaniem stosu maszynowego.
W najgorszym przypadku, jeśli algorytm będzie dzielił tablicę zawsze na część jednoelementową i resztę, to rekursja osiągnie głębokość Aby temu zapobiec, należy sprawdzać, która część jest krótsza – i tę porządkować najpierw. Z dłuższą zaś nie wchodzić w rekursję, lecz ponownie dzielić na tym samym poziomie wywołania: PROCEDURE Quicksort( l, r ) BEGIN WHILE l < r DO { dopóki fragment dłuższy niż 1 element } BEGIN i := PodzielTablice( l, r ); IF (i-l) ≤ (r-i) THEN { sprawdź, czy lewa część krótsza } BEGIN { TAK? } Quicksort( l, i-1 ); { posortuj lewą, krótszą część } l := i+1 { i kontynuuj dzielenie dłuższej } END ELSE BEGIN { NIE } Quicksort( i, r ); { posortuj prawą, krótszą część } r := i-1 { i kontynuuj dzielenie dłuższej } END END END