Following are few lines from Wiki page of Quick Sort, these lines are relevant to the topic here.

*
**The most direct competitor of quicksort is heapsort. Heapsort’s worst-case running time is always mathcal{O}(n log n). But, heapsort is assumed to be on average somewhat slower than quicksort. This is still debated and in research, with some publications indicating the opposite.[11][12] In Quicksort remains the chance of worst case performance except in the introsort variant, which switches to heapsort when a bad case is detected. If it is known in advance that heapsort is going to be necessary, using it directly will be faster than waiting for introsort to switch to it. *

http://en.wikipedia.org/wiki/Quicksort