之前在面试的,被问到,一脸懵逼,在学校的时候,学过算法,出来工作后,就没有写过,这次面试,算是给我提个醒吧,因此,来学习下算法。
二分查找简单来说,就是一个有序数列,每次对比中间。
因此,算法如下:
public static int binarySearch2 (int [] arrays, int key) {
int length = arrays.length;
int mid;
int start = 0;
int end = length - 1;
while (start <= end) {
mid = (end - start) / 2 + start;
if (key < arrays[mid]) {
end = mid - 1;
} else if (key > arrays[mid]) {
start = mid + 1;
} else {
return mid;
}
}
return -1;
}