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

在哪种情况下,自下而上的合并排序优先于自上而下的合并排序?

最佳答案

递归mergesort需要递归堆栈的O(log n)空间,但自下而上的版本可以使您做得更好(没有递归堆栈,只有几个整数可以跟踪您在输入中的位置)。

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

Here's自底向上的版本,显示了我的意思。

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

10-11 02:25