1

RubyArray#bsearch假设一个排序数组,接受一个返回 true/false 的块,并使用二进制搜索来查找块返回 true 的第一个元素。例如:

ary = [0, 4, 7, 10, 12]
ary.bsearch {|x| x >=   4 } #=> 4

我想要一个也使用二进制搜索的版本,但返回找到的值的索引,而不是值本身。在上面的示例中,它将返回1.

我找不到任何这样的内置方法——有吗?如果没有,我可以使用任何其他内置函数来实现这一点吗?或者,ruby 是否有任何支持搜索和及时插入的内置结构n log n

4

0 回答 0