title: Quicksort: Iterative or Recursive
body: <p>I learnt about quick sort and how it can be implemented in both Recursive and Iterative method.<br />
  In Iterative method:</p>
  
  <ol>
  <li>Push the range (0...n) into the stack</li>
  <li>Partition the given array with a pivot</li>
  <li>Pop the top element.</li>
  <li>Push the partitions (index range) onto a stack if the range has more than one element</li>
  <li>Do the above 3 steps, till the stack is empty</li>
  </ol>
  
  <p>And the recursive version is the normal one defined in wiki.</p>
  
  <p>I learnt that recursive algorithms are always slower than their iterative counterpart.<br />
  So, Which method is preferred in terms of time complexity (memory is not a concern)?<br />
  Which one is fast enough to use in Programming contest?<br />
  Is c++ STL sort() using a recursive approach?</p>