package com.yuzhyun.test7;
public class BinarySearch {
static int binarySearch(int[] array, int key) {
int index = search(array, key, 0, array.length - 1);
return index;
}
private static int search(int[] array, int key, int left, int right) {
if (left == right)
if (key == array[left])
return left;
else {
return -1;
}
int mid = (left + right) / 2;
/**
* 此处考虑到出现right=left+1的时候,出现死循环
* */
if (mid == left) {
if (key == array[left])
return left;
else if (key == array[right])
return right;
else {
return -1;
}
}
if (key > array[mid])
return search(array, key, mid, right);
else if (key == array[mid]) {
return mid;
} else
return search(array, key, left, mid);
}
}
二分查找
最新推荐文章于 2024-10-23 22:33:32 发布
