package algorithm
//返回查找到的数据的索引下标
object BinarySearch {
def main(args: Array[String]): Unit = {
val arr = Array(1, 2, 3, 10, 100, 19999, -1998, 9, 234, 234, 9, 43)
val index = Binarysearch(arr, 100)
println("the found value is " + index)
}
def Binarysearch(arr:Array[Int], value:Int):Int={
var left = 0
var right = arr.size - 1
while (left <= right){
var mid = left + ((right - left)>>1) // 防止溢出, 并且移位操作更高效
println(s"left: $left right : $right mid: $mid")
if(arr(mid)> value){
right = mid -1
}else if(arr(mid) < value){
left = mid +1
}else{
return mid //注意 添加return, scala中只有最后一行才是作为返回值
}
}
-1
}
}
scala 二分法查找
最新推荐文章于 2022-09-25 15:37:50 发布
本文介绍了一种在Scala中实现的二分查找算法。该算法能够有效地在一个整数数组中查找指定值的位置,并返回该值的索引。通过使用变量left、right和mid进行迭代搜索,确保了算法的高效性和准确性。
1124

被折叠的 条评论
为什么被折叠?



