Mi chiedo solo perché Java
e .NET Framework
usi diversi algoritmi di ordinamento per impostazione predefinita.
In Java Array.Sort()
utilizza l' algoritmo Merge Sort per impostazione predefinita e come dice Wikipedia.com :
In Java, i metodi Arrays.sort () utilizzano l'ordinamento di tipo merge o un quicksort sintonizzato in base ai tipi di dati e per l'efficienza dell'implementazione passare all'ordinamento di inserzione quando vengono ordinati meno di sette elementi dell'array
In .NET Framework Array.Sort/List.Sort()
utilizza l'ordinamento rapido come algoritmo di ordinamento predefinito ( MSDN ):
List.Sort () utilizza Array.Sort, che utilizza l'algoritmo QuickSort. Questa implementazione esegue un ordinamento instabile; cioè, se due elementi sono uguali, il loro ordine potrebbe non essere preservato. Al contrario, un ordinamento stabile preserva l'ordine degli elementi uguali.
Osservando la grande tabella "Confronto di algoritmi" possiamo vedere che entrambi gli algoritmi hanno un comportamento piuttosto diverso dalle prospettive di Peggiore caso e utilizzo della memoria:
Entrambi Java
e .NET
sono ottimi frame per lo sviluppo di soluzioni aziendali, entrambi hanno piattaforme per lo sviluppo integrato. Quindi perché stanno usando algoritmi di ordinamento diversi per impostazione predefinita, qualche pensiero?