import java.util.Arrays;
public class BinarySearch {
public static int binarySearch1(int[] array, int key){
int low = 0;
int high = array.length - 1;
int mid;
while (low <= high){
mid = (low + high)>>>1;
if(key == array[mid])
return mid;
else if(key > array[mid])
low = mid + 1;
else
high = mid - 1;
}
return -1;
}
public static int binarySearch2(int[] array, int key, int low, int high){
if(low > high)
return -1;
int mid = (low + high)>>>1;
if(key == array[mid])
return mid;
else if(key > array[mid])
return binarySearch2(array, key, mid+1, high);
else
return binarySearch2(array, key, low, mid-1);
}
public static void main(String[] args){
int[] array={6,3,1,88,111,23,56,0,7,8};
Arrays.sort(array);
System.out.println(Arrays.toString(array));
int index1 = binarySearch1(array, 23);
System.out.println(index1);
int index2 = binarySearch2(array, 23, 0, array.length-1);
System.out.println(index2);
}
}
二分查找
最新推荐文章于 2023-05-28 13:59:52 发布