Как сделать эту двоичную сортировку в 10 раз быстрее? - PullRequest
0 голосов
/ 11 ноября 2019

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

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...