Solo me pregunto por qué Java
y .NET Framework
utiliza diferentes algoritmos de clasificación por defecto.
En Java Array.Sort()
usa el algoritmo Merge Sort por defecto y como dice Wikipedia.com :
En Java, los métodos Arrays.sort () usan una combinación de ordenación o una ordenación rápida ajustada dependiendo de los tipos de datos y, para la eficiencia de implementación, cambie a la ordenación por inserción cuando se ordenan menos de siete elementos de la matriz
En .NET Framework Array.Sort/List.Sort()
usa la clasificación rápida como algoritmo de clasificación predeterminado ( MSDN ):
List.Sort () usa Array.Sort, que usa el algoritmo QuickSort. Esta implementación realiza una ordenación inestable; es decir, si dos elementos son iguales, su orden podría no conservarse. Por el contrario, una ordenación estable conserva el orden de los elementos que son iguales.
Al observar la gran tabla "Comparación de algoritmos" , podemos ver que ambos algoritmos tienen un comportamiento bastante diferente de las perspectivas de uso de la memoria y el caso más desfavorable:
Ambos Java
y .NET
son excelentes marcos para el desarrollo de soluciones empresariales, ambos tienen plataformas para el desarrollo integrado. Entonces, ¿por qué están usando diferentes algoritmos de clasificación por defecto, alguna idea?