Are there any commonly-used, efficient Java sort implementations when stability is not a requirement?
<p>The Java implementation (at least the one I use, which is version 1.8 of JDK from Oracle) uses an stable sort. With stable I'm referring to the algorithm guaranteeing that two objects A and B that are equal according to the sorting criterion preserve their original ordering. However, I have a use case where I am sorting Objects, and I do not need the sort to be stable.</p>

<p>I have also noticed (by profiling) that it would be beneficial for me to optimize this sorting. Since I don't NEED the stable sorting, and I suppose an unstable sorting can be faster, I would like to replace the default sorting here with an unstable (and hopefully faster) sort. Are there any good, well-known implementations that are commonly-used around there? Can you recommend any?</p>

<p>In the worst case implementing an algorithm myself is always an option, but I'd prefer to go for an existing implementation that has already been thoroughly tested and profiled and is widely used. Unfortunately I was not able to find such an implementation though.</p>

<p>EDIT: The reason I wrote that I assume an unstable sort can potentially be faster than a stable sort is because the task of unstable sorting is easier than, or as difficult as, the task of stable sorting. Every solution for stable sorting is also a solution for unstable sorting, but the opposite is not true. I realise that in practice this does not necessarily mean that an unstable sorting algorithm is going to be faster, but it is possible in theory, so I'd like to explore the option</p>