2012-04-20 34 views

Odpowiedz

18

Quicksort jest używany do tablic typów pierwotnych, gdy mergesort do tablic Object [].

Głównym powodem mergesort służy do obiektów, które mergesort jest stabilny - nie zmienić kolejność elementów, które są równe: http://en.wikipedia.org/wiki/Sorting_algorithm#Stability

Dla prymitywów stabilność rodzaju nie ma sensu, ponieważ nie można wyróżnić dwie wartości, które są równy. Dlatego używa się quicksort (z wyjątkiem sortowania tablicy obiektów, dla których wykonywany jest mergesort). Co więcej, quicksort można zrobić na miejscu, więc nie ma potrzeby przydzielania kolejnej tablicy.

+0

W dzisiejszym świecie, mergesort stał się dominującym sorterem, ponieważ można go zaimplementować do używania wielu rdzeni – ControlAltDel

+0

, ale JDK na razie tego nie używa. –

+5

Powiedział, że JDK 7 nie używa już mergesort - używa mitycznego [TimSort] (http://en.wikipedia.org/wiki/Timsort)! –

Powiązane problemy