Zastanawiam się tylko, dlaczego Java
i .NET Framework
używa domyślnie innego algorytmu sortowania.
W Javie domyślnie Array.Sort()
korzysta z algorytmu scalania sortowania i jak mówi Wikipedia.com :
W Javie metody Arrays.sort () używają sortowania scalonego lub dostrajanego szybkiego sortowania w zależności od typów danych oraz do przełączania wydajności implementacji na sortowanie wstawiania, gdy sortowanych jest mniej niż siedem elementów tablicy
W .NET Framework Array.Sort/List.Sort()
używa szybkiego sortowania jako domyślnego algorytmu sortowania ( MSDN ):
List.Sort () używa Array.Sort, który wykorzystuje algorytm QuickSort. Ta implementacja działa w sposób niestabilny; to znaczy, jeśli dwa elementy są równe, ich kolejność może nie zostać zachowana. Natomiast stabilny sort zachowuje porządek elementów, które są równe.
Patrząc na świetną tabelę „Porównanie algorytmów” , możemy zobaczyć, że oba algorytmy zachowują się zupełnie inaczej niż perspektywy najgorszego przypadku i wykorzystania pamięci:
Zarówno Java
i .NET
są wielkie Ramki dla rozwoju rozwiązań dla przedsiębiorstw, zarówno ma platform wbudowanych rozwoju. Dlaczego więc domyślnie używają innego algorytmu sortowania, jakieś myśli?