是否存在返回索引而不是值的bsearch?

时间:2015-09-05 23:29:04

标签: ruby bsearch

Ruby的Array#bsearch假定一个有序数组,一个块返回true / false,并使用二进制搜索来查找该块返回true的第一个元素。例如:

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

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

我无法找到任何这样的内置方法 - 有吗?如果没有,有没有其他内置我可以用来实现这个?或者,ruby是否有任何内置结构支持n log n时间内的搜索和插入?

0 个答案:

没有答案