エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
クイックソート - rubyco(るびこ)の日記
Rubyでクイックソートを作ってみました。シンプルな仕上がり♪ qsortとqsort!を作りました。 比較関数を... Rubyでクイックソートを作ってみました。シンプルな仕上がり♪ qsortとqsort!を作りました。 比較関数をブロックで与えることができます。 与えられなかったら<=>を使います。 課題: callではなくyieldを使う版 課題: 非再帰版 class Array def qsort(&cmp) self.dup.qsort!(&cmp) end def qsort!(&cmp) cmp ||= lambda { |a, b| a <=> b } sort_between(0, length - 1, &cmp) end def sort_between(low, high, &cmp) return self if high <= low pivot = self[(low + high) / 2] left = low right = high loop do left += 1