二分查找
public class MyBinarySearchDemo {
public static void main(String[] args) {
int[] arr = {1,2,3,4,5,6,7,8,9,10};
int num = 3;
int index = binarySearchForIndex(arr,num);
}
private static int binarySearchForIndex(int[] arr, int num) {
//1.定义查找范围
int min = 0;
int max = arr.length-1;
//2.循环查找 min<=max;
while (min<=max){
//3.计算中间位置 mid
int mid =(min + max) >> 2;
if (arr[mid]>num){//mid指向的元素 > num,表示要查找的元素在左边
max = mid -1;
}else if (arr[mid]<num){//mid指向的元素 < num,表示要查找的元素在右边
min = mid +1;
}else{
return mid;//mid指向的元素 == num
}
}
return -1;//如果min大于max就表示元素不存在。
}
}