折半查找

//二分查找的前提是有序的数。
public class BinarySearch {
public static void main(String[] args) {
int[] arr = {1, 2, 4, 5, 6, 8, 9, 10};
System.out.println(binarySearch(arr, arr.length, 3));
}

/**
*
* @param arr 数组
* @param arrlen 数组长度
* @param x 要查找的数
* @return 返回数所在位置下标
*/
public static int binarySearch(int[] arr, int arrlen, int x) {
int low, high, mid;
low = 0;
high = arrlen-1;//数组是从0开始的,所以需要-1
while (low <= high) {
mid = (low + high) / 2;
if (arr[mid] == x)
return mid;
else if (arr[mid] > x)
high = mid - 1;
else
low = mid + 1;
}
return -1;
}
}
结果为-1
原文地址:https://www.cnblogs.com/jasonboren/p/10784294.html