对于无序的数组,二分查找法是行不通的,因为二分查找法的前提条件就是:有序。
代码:
/**
* 二分查找的实现
*
* @param array 待查找的数组
* @param searchNum 待查找的数字
* @return 查找的结果,为正数的时候,表示下标,-1表示没找到
*/
static int binarySearchImpl(int[] array, int searchNum) {
int low = 0;
int high = array.length - 1;
int mid;
while (low <= high) {
mid = (low + high) / 2;
if (array[mid] > searchNum) {
high = mid - 1;
} else if (array[mid] < searchNum) {
low = mid + 1;
} else {
return mid;
}
}
return -1;
}