Rubyです。以下のクイックソートで、メソッドに引数を使いたいのですが、うまくいきません。どなたかRubyに詳しい方教えていただけると幸いです。
Ruby
1# クイックソート 2def quick_sort 3 4 return self if self.size < 2 5 6 7 pivot = self.shift 8 9 10 smallers = [] 11 biggers = [] 12 self.each do |num| 13 if num < pivot 14 smallers << num 15 else # num >= pivot 16 biggers << num 17 end 18 end 19 20 # smallersとbiggersをそれぞれソートして連結。 21 smallers.quick_sort + [pivot] + biggers.quick_sort 22 23end 24a = [9,8,7,46,5,14,3,2,91] 25p a.quick_sort
上記のコードでも動くのですが、def quick_sort(a)で配列aを引数に持ってきたいのですが、うまく出来ません。恐らくselfとの併用がうまくいっていないのではと思っています。Rubyに詳しい方ご指導いただけると幸いです。
どのように書き換えて、何が問題なのかを質問文に追記してください。
回答2件
あなたの回答
tips
プレビュー