Эффективная функциональная сортировка
Вопрос
Я программирую функцию для Ti-nspire., Так что я не могу использовать встроенные изнутри функции. Какой самый широкий эффективный алгоритм для сортировки списка чисел без изменения самого списка? (Рекурсионная и расщепление списка - это справедливая игра, как и общее использование математики.)
Решение
Mergeort - это просты, простые, эффективные и стабильные: разделить список, сортировать рекурсивно и объединить результаты.
Быть более конкретным, Mergeort принимает O (n log n), который асимптотически оптимален. Кроме того, на практике (с обоими алгоритмами модифицированы для сортировки коротких сублистов со спецпортировочным сортом), Mergeort может быть близким участником модифицированной QuickSort, используемой в стандартных библиотеках C / C ++.
Редактировать: В отличие от сортов In-Place, таких как QuickSort и STORMION, MERGEORT требует вспомогательной памяти, и проще всего реализовать, скорее, а не заменять.
Другие советы