我对“原地” MSD 基数排序算法感到非常困惑:链接
每个箱子都使用下一个数字进行递归处理,直到所有数字都用于排序。
我感到困惑,因为递归似乎意味着O(n)堆栈空间,其中n是最长字符串(以位数计)的长度,对吗?
在我看来,避免堆栈溢出的唯一方法是使用堆空间--但是这时算法不再是任何定义下的“原地”。
那么,如何才能实现“原地”的MSD基数排序呢?
我感到困惑,因为递归似乎意味着O(n)堆栈空间,其中n是最长字符串(以位数计)的长度,对吗?
在我看来,避免堆栈溢出的唯一方法是使用堆空间--但是这时算法不再是任何定义下的“原地”。
那么,如何才能实现“原地”的MSD基数排序呢?