【发布时间】:2017-10-06 05:22:12
【问题描述】:
我需要检查测试用例的状态,例如它是通过还是失败,并知道它的索引值。
我怎样才能做到这一点?
我尝试了二进制搜索。这是代码:
class Array
def binary_search(val, low = 0, high = length - 1)
return nil if high < low
mid = (low + high) >> 1
case val <=> self[mid]
when -1
binary_search(val, low, mid - 1)
when 1
binary_search(val, mid + 1, high)
else
mid
end
end
end
ary = [0, 1, 4, 5, 6, 7, 8, 9, 12, 26, 45, 67, 78, 90]
[0, 42, 45, 24324, 99999].each do |val|
i = ary.binary_search(val)
if i
puts "found #{val} at index #{i}: #{ary[i]}"
else
puts "#{val} not found in array"
end
end
但那是关于是否找到密钥。
【问题讨论】:
-
你的问题不清楚,测试用例和索引是做什么的。不同的术语
标签: ruby-on-rails ruby