二分查找法

来源:互联网 发布:sai mac没压感 编辑:程序博客网 时间:2024/06/08 11:28
package lsn1.sjjg.cct.cn.lsn1;import org.junit.Test;/** * 二分查找法 * Created by linyaokui on 17/12/4. */public class BinarySearch {    @Test    public void testBinarySearch(){        int[] array=new int[]{1,2,4,9,13,20,22,29,34,35};        int key=35;        System.out.println(binarySearch(array,0,array.length,key));    }    //二分查找  在array找formIndex到toIndex之间的数,有没有key这个值    public static int binarySearch(int[] array,int fromIndex,int toIndex,int key){        int low=fromIndex;        int high=toIndex-1;        while(low<=high){            int mid=(low+high)/2;//   >>>1  无符号除2            int midVal=array[mid];            if(key>midVal){//去右边找                low=mid+1;            }else if(key<midVal){                high=mid-1;            }else{                return mid;            }        }        return -(low+1);    }}
原创粉丝点击