为什么R使用基数排序?

Ben*_*Ben 7 r radix-sort data.table

根据我的理解,R的order()方法默认使用基数排序.情况并非总是如此(见新闻),但Matt Dowle提出了这个演示文稿,因为基数排序在经验上表现良好.

我的问题是,为什么radix排序比实际中的其他排序算法更好?维基百科对基数排序没有强有力的理由.另外,为什么其他流行的语言/工具如Python和pandas默认不使用基数排序,如果它真的是最好的排序算法?

OmG*_*OmG 3

如您所知,一般情况下不存在最好的排序算法。\n解决方案可以是Radix sort is a stable sort。因此,正如在 R 中保持平局情况的顺序可能很重要一样,他们实现了一种稳定的排序方法。

\n\n

您可以在此处以及这篇文章中找到有关稳定性的更多信息。

\n\n

另一点是,由于稳定​​性在不同情况下很重要,因此您应该在此处找到最佳的稳定排序算法。

\n\n

\n\n
    \n
  • 块排序
  • \n
  • 冒泡排序
  • \n
  • 桶排序
  • \n
\n\n

C

\n\n
    \n
  • 级联归并排序
  • \n
  • 鸡尾酒调酒器分类
  • \n
  • 计数排序
  • \n
  • 立方体排序
  • \n
\n\n

G

\n\n
    \n
  • 侏儒排序
  • \n
\n\n

\n\n
    \n
  • 插入排序
  • \n
\n\n

L

\n\n
    \n
  • 库排序
  • \n
\n\n

中号

\n\n
    \n
  • 归并排序
  • \n
\n\n

\n\n
    \n
  • 奇\xe2\x80\x93偶排序
  • \n
  • 振荡归并排序
  • \n
\n\n

\n\n
    \n
  • 鸽巢排序
  • \n
  • 邻近图排序
  • \n
\n\n

\n\n
    \n
  • 基数排序
  • \n
\n\n

时间

\n\n
    \n
  • 蒂姆索特
  • \n
\n