r - 为什么 R 使用基数排序?

标签 r data.table radix-sort

根据我的理解,R 的 order()方法默认使用基数排序。情况并非总是如此(参见 news),但 Matt Dowle 制作了 this presentation建议更改,因为基数排序在经验上表现良好。

我的问题是,为什么基数排序在实践中比其他排序算法更好? Wikipedia doesn't make a strong case for radix sort .另外,为什么其他流行的语言/工具(如 Python 和 Pandas)默认情况下不使用基数排序,如果它确实是最好的排序算法?

最佳答案

如您所知,一般情况下没有任何最佳排序算法。
解决方案可以是 基数排序是一种稳定排序 .因此,由于在 R 中保持平局的顺序可能很重要,因此他们实现了稳定的排序方法。

您可以找到有关稳定性的更多信息 here还有 this post .

另一点是,由于稳定​​性在不同情况下很重要,您应该在稳定排序算法之间找到最好的 here .


  • 块排序
  • 冒泡排序
  • 桶排序

  • C
  • 级联归并排序
  • 鸡尾酒调酒器排序
  • 计数排序
  • 立方体排序

  • G
  • 侏儒排序


  • 插入排序

  • L
  • 图书馆排序


  • 归并排序

  • Ø
  • 奇偶排序
  • 振荡归并排序

  • 电话
  • 鸽巢排序
  • Proxmap 排序

  • R
  • 基数排序

  • 电话
  • Timsort
  • 关于r - 为什么 R 使用基数排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46920949/

    相关文章:

    c - 这些功能如何运作?

    java - 关于Java中基数排序实现的问题

    r - R中的Arules序列挖掘

    r - 拆分数据表中不同长度的字符串

    r - 统一使用字符串中的单双位数

    r - R 中数字和字符列的 dcast - 默认返回长度

    c++ - 基数桶搜索

    r - 通过 R 在 WinBUGS 中设置种子

    r - 如何在 R 中的 ns() 中指定度数参数,以构造 5 度自然样条?

    r - 在 r 中查看 PostgreSQL 数据库中所有模式的列表?