为啥 R 使用基数排序?
Posted
技术标签:
【中文标题】为啥 R 使用基数排序?【英文标题】:Why does R use radix sort?为什么 R 使用基数排序? 【发布时间】:2017-10-24 22:21:12 【问题描述】:据我了解,R 的order()
方法默认使用基数排序。情况并非总是如此(请参阅 news),但 Matt Dowle 提出了 this presentation 的建议,因为基数排序在经验上表现良好。
我的问题是,为什么在实践中基数排序比其他排序算法更好? Wikipedia doesn't make a strong case for radix sort。另外,如果它确实是最佳排序算法,为什么其他流行的语言/工具(如 Python 和 pandas)默认不使用基数排序?
【问题讨论】:
我真的不明白为什么这个问题被否决了。当然它的提法还有改进的余地,但它的核心并不浅。 【参考方案1】:如您所知,一般情况下没有任何最佳排序算法。 一个解决方案可以是基数排序是一种稳定的排序。因此,由于在 R 中保持平局的顺序可能很重要,它们实现了一种稳定的排序方法。
您可以在here 和this post 中找到更多关于稳定性的信息。
另一点是,由于稳定性在不同情况下可能很重要,您应该在here 提供的稳定排序算法中找到最佳算法。
B
块排序 冒泡排序 桶排序C
级联合并排序 鸡尾酒调酒器分类 计数排序 立方体排序G
Gnome 排序我
插入排序L
库排序M
归并排序O
奇偶排序 振荡归并排序P
鸽巢排序 Proxmap 排序R
基数排序T
Timsort【讨论】:
以上是关于为啥 R 使用基数排序?的主要内容,如果未能解决你的问题,请参考以下文章