/*
面试题:
给定一个有序的数组,如果往该数组中存储一个元素,并保证这个数组还是有序的,
那么个元素的存储的角标为如何获取。
{13,15,19,28,33,45,78,106};
*/
public class binarySearch {
public static void main(String[] args) {
int[] arr = { 4, 14, 18, 27, 33, 48, 62 };
int index = binarySearch(arr, 50);
System.out.println("index=" + index);
}
public static int binarySearch(int[] arr, int key) {
int min = 0;
int max = arr.length - 1;
int mid = (min + max) / 2;
while (min <= max) {
mid = (max + min) >> 1;
if (key > arr[mid]) {
min = mid + 1;
} else if (key < arr[mid]) {
max = mid - 1;
} else {
return mid;
}
}
return min;
}
}
Java数组—常见功能:二分法查找(2)
最新推荐文章于 2022-10-31 21:17:33 发布