java实现二分法查找
二分法查找算法适用于已经排好序的数组。
二分法的基本思路和步骤是:
1.找到数组的起始坐标和末尾坐标并记录。
2.找到数组的中间元素坐标并记录。
3.将需要查找的元素跟中间元素进行比较,如果大于中间元素,则截取中间元素以后的所有元素作为新的数组,将中间元素设为新数组的起始元素,如果小于中间元素,则截取中间元素以前的所有元素作为新的数组,将中间元素作为新数组的末尾元素。
4.如果需要查找的元素正好等于中间元素,则查找结束,此时的中间元素为需要查找的元素。
5.如果不等于中间元素,重复步骤3,步骤4,直至相等,此时找出查找出目标元素。
二分法的java代码实现:
public static int binarySearch(int[] arr, int value) {
int min = 0;
int max = arr.length - 1;
while (min <= max) {
int mid = (max + min) >>1;
if (arr[mid] == value) {
return mid;
}
if (value < arr[mid]) {
max = mid - 1;
}
if (value > arr[mid]) {
min = mid + 1;
}
}
return -1;
}