Mergesort является простым, простым, эффективным и стабильным: разбить список, выполнить рекурсивную сортировку и объединить результаты.
Чтобы быть более конкретным, сортировка слиянием принимает O (N log N), что является асимптотически оптимальным. Кроме того, на практике (с обоими алгоритмами, измененными для сортировки коротких подсписков со специальной сортировкой), mergesort может быть близким конкурентом модифицированной быстрой сортировке, используемой в стандартных библиотеках C / C ++.
Редактировать: в отличие от сортировки на месте, такой как быстрая сортировка и сортировка вставкой, сортировка слиянием требует вспомогательной памяти и проще всего реализовать путем копирования, а не замены.