L'ordinamento richiede O (n log n) nel caso seriale. Se avessimo processori O (n) spereremmo per un aumento di velocità lineare. Esistono algoritmi paralleli O (log n) ma hanno una costante molto alta. Inoltre, non sono applicabili all'hardware delle materie prime che non ha processori O (n) vicini. Con i processori p, gli algoritmi ragionevoli dovrebbero richiedere tempo O (n / p log n).
Nel caso seriale, l'ordinamento rapido ha la migliore complessità di runtime in media. Un algoritmo di ordinamento rapido parallelo è facile da implementare (vedi qui e qui ). Tuttavia, non funziona bene poiché il primo passo è quello di partizionare l'intera raccolta su un singolo core. Ho trovato informazioni su molti algoritmi di ordinamento in parallelo, ma finora non ho visto nulla che punta a un chiaro vincitore.
Sto cercando di ordinare elenchi da 1 a 100 milioni di elementi in un linguaggio JVM in esecuzione da 8 a 32 core.