Предполагается, что мы сделаем функцию двоичного поиска быстрее, чем обычный метод 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
}