我们假设二进制搜索函数比常规的scala indexOf方法要快,并且要快100倍,这最多可以使我快10倍。给定的数组已排序,n = 10000000
试图将给定值转换为缓冲区以加快查找速度,但由于数组大小为10000000,但它花费的时间太长。
def binarySearch(values: Array[Int],target: Int): Option[Int] = {
val n = values.size
var left = 0
var right = n - 1
while(left <= right){
val mid = left + (left + right) / 2
val value = values(mid)
if(value == target)
return Some(mid)
else if(value < target){
left += 1
}
else
right -= 1
}
None
}