二分查找法:前提是已經(jīng)排序好的數(shù)列 package zaizhu.da; //二分查找法 public class Test30 { public static void main(String[] args) { int[] nums= {10,20,50,65,88,90}; int index=binarySearch(nums,10);//定義返回的是數(shù)組下標 System.out.println(index); } //二分查找算法 public static int binarySearch(int[] nums,int key) { int start=0;//開始下標 int end=nums.length-1;//結束下標 while(start<end) { int middle=(start+end)/2;//除二也可以用位移表示 >>>1 if(nums[middle]>key) { end=middle-1; }else if(nums[middle]<key){ start=middle+1; }else { return middle; } } return -1; } } |
|