Ruby的排序方法使用哪种算法?

unj*_*nj2 42 ruby arrays sorting

当我使用本机sort方法对数组进行排序时,Ruby使用哪种算法?

它是数据依赖的,即,如果数据很小,它使用X算法,否则它使用Y算法?

这是稳定的吗?平均时间复杂度是多少?

Alb*_*oPL 28

请看这里:http://www.igvita.com/2009/03/26/ruby-algorithms-sorting-trie-heaps/

它本身使用quicksort,但平均而言是n log n复杂度.

  • 我想知道"愚蠢"这个词实际上是否是描述这些算法的技术词汇 (3认同)
  • 这也意味着它很可能不是一个稳定的类别.请参阅http://en.wikipedia.org/wiki/Quick_sort上的解释 (2认同)
  • 如果数组几乎排序,只有一个愚蠢的快速排序转到n ^ 2.在我使用的所有实现中,三个枢轴选择的中位数 (2认同)
  • @Stephan Eggermont:据我所知,在最坏的情况下,三个枢轴的中位数也是n ^ 2. (2认同)