2009-05-13 11 views
39

ネイティブのsortメソッドを使用して配列をソートすると、どのアルゴリズムでRubyが使用されますか?Rubyのソート方法はどのアルゴリズムを使用していますか?

データに依存するかどうか、つまりデータが小さければXアルゴリズムを使用しますか?そうでない場合はYアルゴリズムを使用しますか?

安定した並べ替えですか?平均時間の複雑さは何ですか?

+0

Rubyのソートの安定性については、[この質問](https://stackoverflow.com/questions/15442298/is-sort-in-rubystable)で説明しています。 –

答えて

25

はここを見て:それはネイティブに、しかし、クイックソートを使用しないhttp://www.igvita.com/2009/03/26/ruby-algorithms-sorting-trie-heaps/

nはログインnは平均の複雑されています。

+2

これはまた、安定した並べ替えではない可能性が高いことを意味します。これについての説明はhttp://en.wikipedia.org/wiki/Quick_sort –

+0

を参照してください。特に配列がほぼソートされている場合は、クイックソートの複雑さはn^2になります。それでも、ほとんどの場合、非常に高速です。 – AlbertoPL

+1

配列がほぼソートされている場合、愚かなクイックソートだけがn^2に行きます。 3つのピボット選択の中央値は、私が使用したすべての実装にあります –

関連する問題