二分法
二分查找在有序数组中查找某个值的时间复杂度是O(logN),但是二分法不一定只能用在有序数组中,对于某些特殊情况的无序数组也可以使用二分查找
二分法的常见三种使用情况
1) 在一个有序数组中, 找某个数是否存在
2) 在一个有序数组中, 找>=某个数最左侧的位置
3) 局部最小值问题
1.在一个有序数组中, 找某个数是否存在
public static boolean binarySearchExist(int[] arr, int target) {
int left = 0;
int right = arr.length - 1;
while (left < right) {
int mid = left + ((right - left) >> 1);
if (arr[mid] == target) {
return true