タグ

2020年2月8日のブックマーク (2件)

  • Array#bsearch (Ruby 3.3 リファレンスマニュアル)

    bsearch { |x| ... } -> object | nil[permalink][rdoc][edit] bsearch -> Enumerator ブロックの評価結果で範囲内の各要素の判定を行い、条件を満たす値を二分探索(計算量は O(log n))で検索します。要素が見つからない場合は nil を返します。self はあらかじめソートしておく必要があります。 メソッドはブロックを評価した結果により以下のいずれかのモードで動作します。 find-minimum モード find-any モード find-minimum モード(特に理由がない限りはこのモードを使う方がいいでしょう)では、条件判定の結果を以下のようにする必要があります。 求める値がブロックパラメータの値か前の要素の場合: true を返す 求める値がブロックパラメータより後の要素の場合: false を返す

    youko03
    youko03 2020/02/08
    “ary = [0, 4, 7, 10, 12] ary.bsearch {|x| x >= 4 } # => 4 ary.bsearch {|x| x >= 6 } # => 7 ary.bsearch {|x| x >= -1 } # => 0 ary.bsearch {|x| x >= 100 } # => nil”
  • アルゴリズム for Ruby

    このページは、ソフトバンク パブリッシングから出版されている『プログラミングの宝箱 アルゴリズムとデータ構造』を読んでいるときに、せっかくなのでサンプルコードを Ruby で書き直した場合、どうなるんだろうと思いつつ作っています。 アルゴリズムに関する解説は特にしていませんので、参考書籍をご覧下さい。 また、内容には充分注意していますが、あくまでも僕の勉強メモになっているため、間違いや勘違いがあるかと思います。その点、ご了承いただければ幸いです。同時に間違いや勘違いを発見された方は、メールや掲示板でご指摘いただけると、すごく嬉しいです。 【参考書籍】 紀平拓男、春日伸弥 『プログラミングの宝箱 アルゴリズムとデータ構造』(ソフトバンク パブリッシング 2003) 参考URL:http://www.cmagazine.jp/books/takarabako/

    youko03
    youko03 2020/02/08