我一直在阅读Sedgewick&Wayne撰写的“第四版算法”。本书介绍了两种使用合并排序的方法。使用标准的自上而下的递归合并排序或自下而上的合并排序。
在哪种情况下,自下而上的合并排序优先于自上而下的合并排序?
最佳答案
递归mergesort需要递归堆栈的O(log n)
空间,但自下而上的版本可以使您做得更好(没有递归堆栈,只有几个整数可以跟踪您在输入中的位置)。
如果遇到不支持递归的某种语言,并且仅为堆栈提供有限的内存(也许是嵌入式系统?),那么自下而上的版本将是您的唯一选择。
Here's自底向上的版本,显示了我的意思。
关于algorithm - 自下而上的合并排序在哪里有用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17417887/