递归实现时,就地Radix排序的空间开销是多少。我在这里实现了一个就地Radix排序,没有递归:
http://41j.com/blog/2015/03/in-place-radix-sort-ok-space-overhead/
我相信我实现O(r ^ k)额外空间的方式将是必需的。其中r是基数,k是数字位数。我认为递归解决方案只需要额外的O(k)空间吗?
答案 0 :(得分:0)
假设每个递归步骤按另一个位排序,则最大递归深度等于排序键的位长度。因此,如果您的排序键长度为k = 32位,则需要在每个级别上进行32级递归,并且内存使用量不变。
是的,你需要额外的O(k)空间用于递归栈。