While I know this seems obvious I'll explain my confusion. I've always thought of Quicksort's worst case time complexity as O(n^2). The documentation for Arrays.sort(int[]) from Java 7 to Java 13 says: This algorithm offers O(n log(n)) performance on many data sets that cause other quicksorts to degrade to quadratic performance, and is typically faster than traditional (one-pivot) Quicksort implementations.
The keyword here is "many", so I assume O(n log(n)) here refers to the average case, and there still exists data sets that result in a worst case of O(n^2).
But in Java 14 and up, the documentation for Arrays.sort(int[]) says: This algorithm offers O(n log(n)) performance on all data sets.
So is the worst case for this improved implementation of Quicksort now O(n log(n)) ? Someone please clarify.