Я читал "Алгоритмы, 4-й эд" Sedgewick и Wayne, и по тому, как я реализовал алгоритмы, обсуждаемые в JavaScript.
Недавно я привел примеры объединений, приведенные в книге, чтобы сравнить подходы "сверху вниз" и "снизу вверх"... но я нахожу, что снизу вверх работает быстрее (я думаю). Смотрите мой анализ в моем блоге. - http://www.akawebdesign.com/2012/04/13/javascript-mergesort-top-down-vs-bottom-up/
Мне не удалось найти обсуждение, в котором говорится, что один метод mergesort должен быть быстрее другого. Является ли моя реализация (или анализ) ошибочной?
Примечание: мой анализ измеряет итерационные циклы алгоритма, а не строго сравнивает/перемещает массив. Возможно, это неверно или не имеет значения?
EDIT: Мой анализ на самом деле не ускорил скорость, поэтому мое утверждение о том, что он работает "быстрее", немного вводит в заблуждение. Я отслеживаю "итерации" через рекурсивный метод (top- вниз), а циклы for (снизу вверх) - и снизу вверх, похоже, используется меньшее количество итераций.