根据我的理解,R&#39} order()
方法默认使用基数排序。情况并非总是如此(参见news),但Matt Dowle提出this presentation建议改变,因为基数排序在经验上表现良好。
我的问题是,为什么基数排序在实践中比其他排序算法更好? Wikipedia doesn't make a strong case for radix sort。另外,为什么其他流行的语言/工具(如Python和pandas)默认情况下不使用基数排序,如果它真的是最佳排序算法?
答案 0 :(得分:2)
如您所知,在一般情况下,没有任何最佳排序算法。 解决方案可以是 Radix sort是一种稳定的排序。因此,如在R中保持关联案例的顺序可能很重要,他们实现了稳定的排序方法。
您可以找到有关稳定性here以及this post的更多信息。
另一点是,由于稳定性在不同情况下可能很重要,因此您应该在here之间的稳定排序算法之间找到最佳选择。
<强>乙强>
<强> C 强>
<强“G 强>
<强> I 强>
<强>→强>
<强>中号强>
<强> 0 强>
<强> P 强>
<强> - [R 强>
<强>Ť强>