二分查找(java实现)
二分查找
算法思想:又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分循环这个查找的过程。直到查找到了为止,否则序列中没有待查的关键字。
实现:
1.非递归代码
//传入数组及要查找的数字
private static int searchNumber(int[] array, int searchValue) {
if (array == null)
return -1;
int start = 0;
int end = array.length - 1;
int mid = 0;
while (start <= end) {
// 每次取中间位置进行查找
mid = (start + end) / 2;
if (searchValue < array[mid]) {
end = mid - 1;
} else if (searchValue > array[mid]) {
start = mid + 1;
} else {
return mid;