前置き
安定なソートとは
ソート(並び替え)のアルゴリズムのうち、同等なデータのソート前の順序が、ソート後も保存されるものをいう。
「不安定なソート」は安定なソートでないソートです。
本題
Rubyのsort_by
メソッドは不安定なソートであるとリファレンスに書いてあります。
sort_by
が不安定なソートであることを確認できるような例を作りたいのですが、
なかなかいい例がわかりません。
簡単な例を作ってみましたが安定した結果しか得られませんでした。
ruby
1array = 20.times.map {|i| [i ,rand(0..2)]} 2 3p array.sort_by{|e| e[1]} 4#=> [[2, 0], [6, 0], [7, 0], [13, 0], [14, 0], [15, 0], [16, 0], [0, 1], [4, 1], [8, 1], [12, 1], [18, 1], [1, 2], [3, 2], [5, 2], [9, 2], [10, 2], [11, 2], [17, 2], [19, 2]] 5 6# 安定している
どのような例であればsort_by
が不安定なソートであることを確認できますか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/09 13:31
2021/05/06 01:19 編集
2018/02/09 13:49