Open2
rubyで二分探索
ArrayやRangeクラスに bsearch
というインスタンスメソッドがある。なので、これを使えばRubyで二分探索を実装できる。
target = 5
[0, 1, 3, 5, 7, 9].bsearch { |x| target - x } # => 5
Array#bsearch (Ruby 3.2 リファレンスマニュアル)
Array#bsearch_index (Ruby 3.2 リファレンスマニュアル)
Range#bsearch (Ruby 3.2 リファレンスマニュアル)
コーディング面接で「二分探索を行うメソッドを実装してください」というお題を出された時にこのメソッドを使うのはアリだろうか。
bsearch
メソッドのドキュメントを見ずに実装できたらRuby分かってる感が出て良いかもしれない。こういうメソッドが言語標準で実装されてるのはRubyの良いところだと思う