如何使二进制排序速度提高10倍?

我们假设二进制搜索函数比常规的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

}

BUG2010 回答:如何使二进制排序速度提高10倍?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3121873.html

大家都在问