二分查找法---scala方式
二分查找法---scala方式

package com.leimport scala.util.control.Breaks._/** *** @Author : Le* @CreatDate : 2019/8/28* **/object test {def main(args: Array[String]):Unit= {val arr= List(1, 9, 8, 10, 2, 3, 6)val index=8println(m1(arr,index))}//定义一个方法,求这个参数数字在参数列表的位置def m1(a:List[Int],x:Int):(Int, List[Int])={//先对列表进行字典排序val b=a.sorted//定义左指针var left=0//定义右指针var right=b.length-1//进行循环while (left<=right){//中间指针为每次循环后的左右指针和/2var mid=(left+right)/2//如果中间值刚好相等则退出并返回if (x==b(mid)) return (mid,b)//如果对比值比中间值大,则将左指针移动到中间指针的右侧+1位置if (x>b(mid)) left=mid+1//同理如果对比值比中间值小,则将右指针移动到中间指针的左侧-1位置if (x<b(mid)) right=mid-1}//找不到则返回-1return (-1,b)}}
漫步在广阔无垠的草原上的感觉是如此的美妙,一个少年的成长故事还在继续.....

浙公网安备 33010602011771号