Почему сортировка слиянием используется для объектов в Android / Java API?

На явеArrays.sort () для примитивного типа используется быстрая сортировка. С другой стороныArrays.sort () для объектов использует сортировку слиянием. И то же самое касаетсяCollection.sort () который также использует сортировку Merge. Сортировка коллекций использует реализацию сортировки Arrays. Итак, в простом смысле я могу сказать, что примитивы сортируются с помощью быстрой сортировки, а объекты сортируются с помощью сортировки слиянием.

Я предполагаю, что это как-то связано с алгоритмом сортировки. Есть так много дискуссий о SO на быстрой сортировке против сортировки слиянием, какэтот а такжеэтот, Кажется, есть противоречивые утверждения о том, какой из них лучше, и это понятно, поскольку это зависит от наборов данных.

Мое понимание

На месте: быстрая сортировка выигрывает. Сортировка слиянием может быть реализована на месте для связанного спискаВнешнее хранилище данных: сортировка слияниями выигрывает.Список сортировки (поддерживаемый любым видом связанного списка): сортировка слияниями выигрывает.Ссылка на сайт

Android API, похоже, следует той же схеме, что и Java. Это то, что я нашел вArrays.java

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

И это,

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

Что я не понимаю, так это то, что делает сортировку Merge хорошим кандидатом для сортировки объектов в Java или в Android? Почему бы не оставить это решение за разработчиками?

Ответы на вопрос(4)

Ваш ответ на вопрос