中文

无需额外空间的基数排序

数据结构与算法 2007-06-29 v1

摘要

众所周知,在 RAM 模型中使用基数排序可以在 O(n)O(n) 时间内对范围 [1,nc][1,n^c] 内的 nn 个整数进行排序。更一般地,任何范围 [1,U][1,U] 内的整数可以在 O(nloglogn)O(n \sqrt{\log\log n}) 时间内排序。然而,这些算法使用了 O(n)O(n) 字的额外内存。这是必要的吗?我们提出了一种简单、稳定的整数排序算法,适用于大小为 O(logn)O(\log n) 的字,该算法在 RAM 模型上以 O(n)O(n) 时间运行,且仅使用 O(1)O(1) 字的额外内存。这是实践中最有用的整数排序情形。我们将此结果扩展到键为只读的情形(具有理论意义),并保持相同的界限。另一个有趣的问题是任意 cc 的情形。在此,我们提出了一种黑盒转换方法,可将任何 RAM 排序算法转换为仅使用 O(1)O(1) 额外空间且具有相同运行时间的排序算法。这解决了就地排序复杂度与排序复杂度之间的关系问题。

关键词

引用

@article{arxiv.0706.4107,
  title  = {Radix Sorting With No Extra Space},
  author = {Gianni Franceschini and S. Muthukrishnan and Mihai Patrascu},
  journal= {arXiv preprint arXiv:0706.4107},
  year   = {2007}
}

评论

Full version of paper accepted to ESA 2007. (17 pages)

R2 v1 2026-06-29T01:30:40.734Z