algorithm - 自底向上合并排序在哪里有用?

标签 algorithm sorting language-agnostic merge mergesort

我一直在阅读 Sedgewick 和 Wayne 的“算法,第 4 版”。本书介绍了两种使用归并排序的方法。使用标准的自上而下递归合并排序或自下而上合并排序。

是否存在自下而上合并排序优于自上而下版本的情况?

最佳答案

递归合并排序需要 O(log n) 空间用于递归堆栈,但自下而上的版本可以让你做得更好(没有递归堆栈,只有几个整数跟踪你在输入)。

如果您遇到一些不支持递归并且只为堆栈提供有限内存的语言(也许是嵌入式系统?),自下而上的版本将是您唯一的选择。

Here's显示我的意思的自下而上的版本。

关于algorithm - 自底向上合并排序在哪里有用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17417887/

相关文章:

java - Java ArrayList的复杂排序

functional-programming - "flatMap"这个词是从哪里来的?

algorithm - 您是否曾经使用非二进制信号量来解决非学术任务?

javascript - 使用 JavaScript 优化递归字符串操作函数

java - 需要帮助对数组列表进行排序

algorithm - 随机合并排序

c - (C 程序) 倾斜穿过环的视线 : calculating the path length along my line of sight from sources around this ring

python - 基本线性预测示例

language-agnostic - 内容本地化领域最佳实践

oop - OOP 中的主要概念