Tag: bsearch

Ruby 2.0.0 Array #bsearch行为

我注意到,从Ruby 2.0.0开始,数组类有一个我正在测试的bsearch方法,而且我没有得到我期望的行为。 为什么它返回2和5的值,但是-1,1和4的值是1? arr_in = [-1, 1, 2, 4, 5] arr_in.bsearch { |x| x == 3 } #=> nil arr_in.bsearch { |x| x == -1 } #=> nil arr_in.bsearch { |x| x == 1 } #=> nil arr_in.bsearch { |x| x == 2 } #=> 2 arr_in.bsearch { |x| x == 4 } #=> nil […]

使用bsearch查找用于将新元素插入到排序数组中的索引

我有一个排序的唯一数组,并希望有效地插入一个不在数组中的元素,如下所示: a = [1,2,4,5,6] new_elm = 3 insert_at = a.bsearch_index {|x| x > new_elm } # => 2 a.insert(insert_at, new_elm) # now a = [1,2,3,4,5,6] 方法bsearch_index不存在:只有bsearch ,它返回匹配元素而不是匹配元素的索引。 有没有内置的方法来实现这一目标?