Arrays.sort Uses which Algorithm

Arrays use two different sort algorithms for different types?

Arrays.java's sort method uses 
quicksort for arrays of primitives and 
merge sort for arrays of objects

The most likely reason: quicksort is not stable, i.e. equal entries can change their relative position during the sort; among other things, this means that if you sort an already sorted array, it may not stay unchanged.
Since primitive types have no identity (there is no way to distinguish two ints with the same value), this does not matter for them. But for reference types, it could cause problems for some applications. Therefore, a stable merge sort is used for those.





Comments