Quicksort: Iterativo ou Recursivo

Aprendi sobre o tipo rápido e como ele pode ser implementado no método recursivo e iterativo.
No método iterativo:

Empurra o intervalo (0 ... n) para a pilhaParticionar a matriz dada com um pivôPop o elemento superior.Empurrar as partições (intervalo de índice) para uma pilha se o intervalo tiver mais de um elementoFaça os 3 passos acima, até que a pilha esteja vazia

E a versão recursiva é a normal definida no wiki.

Aprendi que os algoritmos recursivos são sempre mais lentos que sua contraparte iterativa.
Então, qual método é preferido em termos de complexidade de tempo (a memória não é uma preocupação)?
Qual deles é rápido o suficiente para usar no concurso de programação?
O c ++ STL sort () está usando uma abordagem recursiva?

questionAnswers(2)

yourAnswerToTheQuestion