Binary search
二分搜索是从已排序的数据列表中查找指定数据项的一种有效算法。它的工作原理是反复将列表中可能包含该项的部分分割成两半,直到将可能的位置缩小到只有一个。
假设我在想一个1到100之间的数字,就像猜谜游戏一样。如果你已经猜到25,我告诉你我的数字更高,你已经猜到81,我告诉你我的数字更低,那么26到80之间的数字是唯一合理的猜测。
Implementing code
通过二分搜索判断指定项是否存在
public static boolean exist(int[] arr, int num) {
int left = 0, right = arr.length - 1, middle = 0;
while (left <= right) {
middle = left + (right - left) / 2;
if (arr[middle] == num) {
return true;
} else if (arr[middle] < num) {
left = middle + 1;
} else {
right = middle - 1;
}
}
return false;
}
调用测试
int[] arr = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97};
boolean exist = exist(arr, 61);
System.out.println(exist);