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); } }
二分查找法
最新推荐文章于 2024-09-13 21:40:38 发布