Quicksort is broken. Is it worth fixing?
angelfire.com
angelfire.com
Introsort uses heapsort when the recursion is too deep and insertsort when the entry is too small.
On the other hand, when developing an application, you should think twice if you really need to write your own sorting routine. Better stick with the system library unless you have some use case that really requires your own sorting implementation.
Timsort is a good example, used in Python and JDK 7.