La ordenación toma O (n log n) en el caso en serie. Si tenemos procesadores O (n), esperamos una aceleración lineal. Existen algoritmos paralelos O (log n) pero tienen una constante muy alta. Tampoco son aplicables en hardware básico que no tiene cerca de procesadores O (n). Con los procesadores p, los algoritmos razonables deberían llevar tiempo O (n / p log n).
En el caso en serie, la ordenación rápida tiene la mejor complejidad de tiempo de ejecución en promedio. Un algoritmo paralelo de ordenación rápida es fácil de implementar (ver aquí y aquí ). Sin embargo, no funciona bien ya que el primer paso es dividir toda la colección en un solo núcleo. He encontrado información sobre muchos algoritmos de ordenamiento en paralelo, pero hasta ahora no he visto nada que apunte a un claro ganador.
Estoy buscando ordenar listas de 1 millón a 100 millones de elementos en un lenguaje JVM que se ejecuta en 8 a 32 núcleos.