Quicksort: Iteracyjny lub rekurencyjny

Dowiedziałem się o szybkim sortowaniu i tym, jak można je zaimplementować zarówno w metodzie rekurencyjnej, jak i iteracyjnej.
W metodzie iteracyjnej:

Wciśnij zakres (0 ... n) do stosuPodziel daną tablicę na część przestawnąPop top element.Wciśnij partycje (zakres indeksów) na stos, jeśli zakres zawiera więcej niż jeden elementWykonaj powyższe 3 kroki, aż stos będzie pusty

A wersja rekurencyjna to normalna wersja zdefiniowana w wiki.

Nauczyłem się, że algorytmy rekurencyjne są zawsze wolniejsze niż ich iteracyjny odpowiednik.
Więc, która metoda jest preferowana pod względem złożoności czasowej (pamięć nie jest problemem)?
Który jest wystarczająco szybki, aby użyć go w konkursie programowania?
Czy c ++ STL sort () używa podejścia rekurencyjnego?

questionAnswers(2)

yourAnswerToTheQuestion