为什么R使用基数排序?

时间:2017-10-24 22:21:12

标签: r data.table radix-sort

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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

<强>乙

  • 阻止排序
  • 冒泡排序
  • Bucket sort

<强> C

  • 级联合并排序
  • 鸡尾酒调酒器排序
  • 计算排序
  • Cubesort

<强“G

  • Gnome sort

<强> I

  • 插入排序

<强>→

  • 图书馆排序

<强>中号

  • 合并排序

<强> 0

  • Odd-even sort
  • 振荡合并排序

<强> P

  • 鸽子种类
  • Proxmap排序

<强> - [R

  • Radix sort

<强>Ť

  • Timsort