二分查找法:前提是已经排序好的数列 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);//定义返回的是数组下标 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; } } |
|