And then 3 years later we have [0] and 6 years after that we have [1]. I appreciate Masters of the Universe types like Bloch and Lea contributing wickedly-efficient code, but somehow it's always mere mortals who end up mopping things up after the fact. Whether it's a bug in the actual algorithm or a "Comparison method violates its general contract!" exception that happens once in a blue moon, I think putting TimSort in Java was a mistake.
[0] https://dertompson.com/2012/11/23/sort-algorithm-changes-in-...
[1] https://bugs.openjdk.java.net/browse/JDK-8203864