Ti stai chiedendo perché Java
e .NET Framework
utilizzano per impostazione predefinita un diverso algoritmo di ordinamento.
In Java Array.Sort()
utilizza l'algoritmo Unisci ordinamento per impostazione predefinita e come Wikipedia.com dice:
In Java, the Arrays.sort() methods use merge sort or a tuned quicksort depending on the datatypes and for implementation efficiency switch to insertion sort when fewer than seven array elements are being sorted
In .NET Framework Array.Sort/List.Sort()
utilizza Ordinamento rapido come algoritmo di ordinamento predefinito (< a href="http://msdn.microsoft.com/en-us/library/b0zbh7b6.aspx"> MSDN ):
List.Sort() uses Array.Sort, which uses the QuickSort algorithm. This implementation performs an unstable sort; that is, if two elements are equal, their order might not be preserved. In contrast, a stable sort preserves the order of elements that are equal.
Osservando la grande tabella "Confronto degli algoritmi" possiamo vedere che entrambi gli algoritmi hanno un comportamento abbastanza diverso dal peggiore caso e utilizzo della memoria:
Sia Java
che .NET
sono ottimi framework per lo sviluppo di soluzioni Enterprise, entrambi hanno piattaforme per lo sviluppo embedded. Quindi, perché utilizzano di solito un algoritmo di ordinamento diverso, qualsiasi idea?