Этот метод является разновидностью метода "разделяй и властвуй"; впрочем, уместнее было бы назвать его "властвуй и объединяй".
Предположим, что у нас есть процедура СЛИВАЙ (, которая два уже отсортированных сегмента и
преобразует (сливает) в один сегмент , делая его полностью отсортированным. Тогда рекурсивная процедура
очевидно, сортирует сегмент , а для сортировки всего исходного массива достаточно выполнить оператор СОРТИРУЙ . Как видим, вопрос балансировки размера сегментов решается здесь просто. Число обращений к процедуре СЛИВАЙ
равно , а время ее выполнения легко сделать линейным от суммарной длины сливаемых сегментов.
Упражнения