A classificação leva O (n log n) no caso serial. Se tivermos O (n) processadores, esperamos uma aceleração linear. Existem algoritmos paralelos O (log n), mas eles têm uma constante muito alta. Eles também não são aplicáveis a hardware comum, que não tem nem perto de processadores O (n). Com processadores p, algoritmos razoáveis devem levar tempo O (n / p log n).
No caso de série, a classificação rápida tem a melhor complexidade de tempo de execução, em média. Um algoritmo de classificação rápida paralela é fácil de implementar (veja aqui e aqui ). No entanto, ele não apresenta um bom desempenho, pois o primeiro passo é particionar toda a coleção em um único núcleo. Encontrei informações sobre muitos algoritmos de classificação paralela, mas até agora não vi nada apontando para um vencedor claro.
Estou procurando classificar listas de 1 a 100 milhões de elementos em uma linguagem JVM executando de 8 a 32 núcleos.