¿Por qué se utiliza la ordenación por fusión para objetos en la API de Android / Java?

En javaArrays.sort () para el tipo primitivo utiliza ordenación rápida. Por otra parteArrays.sort () para los objetos utiliza la combinación de clasificación. Y lo mismo vale paraCollection.sort () que también usa Merge sort. La ordenación de colecciones utiliza la implementación de ordenación de matrices debajo. Entonces, en sentido simple, puedo decir que las primitivas se ordenan usando la clasificación rápida, pero los objetos se ordenan usando la clasificación por fusión.

Supongo que tiene algo que ver con el algoritmo de clasificación en sí mismo. Hay tanta discusión sobre SO en la clasificación rápida versus la combinación, comoesta yesta. Parece que hay afirmaciones contradictorias sobre cuál es mejor, lo cual es comprensible ya que esto depende de los conjuntos de datos.

Mi entendimiento es

En el lugar: la clasificación rápida gana. La ordenación por fusión se puede implementar in situ para la lista vinculadaDatos de almacenamiento externo: el tipo de fusión gana.Lista de clasificación (respaldada por cualquier forma de lista vinculada): combina la clasificación de victorias.Enlazar

La API de Android parece seguir el mismo patrón que Java. Esto es lo que encontré enArrays.java

    public static void sort(long[] array) {
    DualPivotQuicksort.sort(array);
}

Y esto,

public static void sort(Object[] array) {
    ComparableTimSort.sort(array);
}

Lo que no entiendo es, ¿qué hace que Merge sort sea un buen candidato para ordenar objetos en Java o en Android? ¿Por qué no dejar esta decisión a los desarrolladores?

Respuestas a la pregunta(4)

Su respuesta a la pregunta