We present a new sorting algorithm, called adaptive ShiversSort , that exploits the existence of monotonic runs for sorting efficiently partially sorted data. This algorithm is a variant of the well-known algorithm TimSort , which is the sorting algorithm used in standard libraries of programming languages, such as Python or Java (for non-primitive types). More precisely, adaptive ShiversSort is a so-called \(k\) -aware merge-sort algorithm, a class that captures ‘ TimSort -like’ algorithms and that was introduced by Buss and Knop. In this article, we prove that, although adaptive ShiversSort is simple to implement and differs only slightly from TimSort , its computational cost, in number of comparisons performed, is optimal within the class of natural merge-sort algorithms, up to a small additive linear term. This makes adaptive ShiversSort the first \(k\) -aware algorithm to benefit from this property, which is also a 33% improvement over TimSort 's worst-case. This suggests that adaptive ShiversSort could be a strong contender for being used instead of TimSort . Then, we investigate the optimality of \(k\) -aware algorithms. We give lower and upper bounds on the best approximation factors of such algorithms, compared to optimal stable natural merge-sort algorithms. In particular, we design generalisations of adaptive ShiversSort whose computational costs are optimal up to arbitrarily small multiplicative factors.