2012-04-20 18 views

risposta

18

Quicksort viene utilizzato per matrici di tipi primitivi mentre mergesort per matrici Object [].

Il motivo principale per cui Mergesort è utilizzato per gli oggetti che Mergesort è stabile - non riordinare gli elementi che sono uguali: http://en.wikipedia.org/wiki/Sorting_algorithm#Stability

Per primitivi la stabilità del genere non ha senso, in quanto non è possibile distinguere due valori che sono pari. Quindi, quicksort viene utilizzato (tranne quando si ordina una matrice di oggetti, per la quale viene eseguito il mergesort). Inoltre, quicksort può essere eseguito, quindi non è necessario allocare un altro array.

+0

Nel mondo di oggi, mergesort è diventato il sorter dominante, in quanto può essere implementato per utilizzare core multipli – ControlAltDel

+0

, ma JDK non lo usa per ora. –

+5

Detto questo, JDK 7 non usa più mergesort - utilizza il mitico [TimSort] (http://en.wikipedia.org/wiki/Timsort)! –

Problemi correlati