二分查找:主要就是建立 left、right、mid,用 mid 与待查找的元素比较,并调节下标。
class BinSearch{
public static void main(String[] args){
//二分查找:要求素组元素必须可以比较大小,且数组必须是有序的
//使用二分查找在数组中查找 value 是否存在,并显示index
int[] arr = {2, 4, 5, 6, 8, 19, 20, 34, 35, 50};
int value = 34;
int index = -1;
int left = 0;
int right = arr.length - 1;
int mid = (left + right) / 2;
while(left < right){
//找到结束
if(value == arr[mid]){
index = mid;
break;
}
//还没找到
else if(value > arr[mid]){
left = mid + 1;
}
else if(value < arr[mid]){
right = mid - 1;
}
mid = (left + right) / 2;
}
if(index == -1){
System.out.println(value + "不存在");
}else{
System.out.println(value + "的下标是" + index);
}
}
}