TL;DR: This paper describes a simple solution to this dilemma: limit the depth of partitioning, and for subproblems that exceed the limit switch to another algorithm with a better worst‐case bound.
TL;DR: The best case for the number of moves is ∼ 12N lg N + O(N) in the worst case as mentioned in this paper, which is the same as the best case in the average case.
TL;DR: For example, Smoothsort as mentioned in this paper is a pure exchange sort that is of order N.log N in the worst case, where N is the length of the sequence in which the sequence is nearly sorted.
TL;DR: In this paper, the authors analyzed the asymptotic number of executions of each instruction for both Williams' and Floyd's versions of Heapsort in the average, best, and worst cases.
Abstract: Heapsort is a classical sorting algorithm due to Williams. Given an array to sort, Heapsort first transforms the keys of the array into a heap. The heap is then sorted by repeatedly swapping the root of the heap with the last key in the bottom row, and then sifting this new root down to an appropriate position to restore heap order.
In Williams' original Heapsort, the new root is sifted down by repeatedly comparing its two children, and swapping it with its larger child if a comparison shows the child to be larger than the key being sifted. Floyd proposed an important variant of Williams' Heapsort which unconditionally performs the swap with the larger child.
This thesis analyzes the asymptotic number of executions of each instruction for both versions of Heapsort in the average, best, and worst cases.
In the average case, when sorting a uniformly generated random heap on N distinct keys, Williams' Heapsort performs $\sim$2N lg N key comparisons while Floyd's variant performs ${\sim}N$ lg N key comparisons (lg is the logarithm base two). Another quantity of interest is the number of times keys are swapped with their right children. Both Williams' and Floyd's versions of Heapsort expect to perform ${\sim}{1\over2}N$ lg N such swaps.
Sedgewick, and independently Fleischer and Wegener, have presented arguments to demonstrate that the number of key comparisons required by Williams' Heapsort in the best case and Floyd's Heapsort in the worst case are ${\sim}N$ lg N and ${\sim}{3\over2}N$ lg N respectively. These arguments are extended and applied in a different form to demonstrate that in the worst case, Williams' and Floyd's Heapsorts perform ${\sim}{3\over2}N$ lg N swaps of keys with their right children, while in the best case at most ${\sim}{1\over4}N$ lg N such swaps are performed. For both versions of Heapsort, it is shown that these best and worst case numbers can be found in heaps that also require the best and worst case numbers of key comparisons.