Open2

rubyで二分探索

mizukmbmizukmb

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 リファレンスマニュアル)

mizukmbmizukmb

コーディング面接で「二分探索を行うメソッドを実装してください」というお題を出された時にこのメソッドを使うのはアリだろうか。

bsearch メソッドのドキュメントを見ずに実装できたらRuby分かってる感が出て良いかもしれない。こういうメソッドが言語標準で実装されてるのはRubyの良いところだと思う