二分查找:前提数组元素必须有序
二分查找的思想:每一次都查中间索引的那个元素,比较大小就能减少一半的元素。
二分法查找的思路如下:
(1)首先,从数组的中间元素开始搜索,如果该元素正好是目标元素,则搜索过程结束,否则执行下一步。
(2)如果目标元素大于/小于中间元素,则在数组大于/小于中间元素的那一半区域查找,然后重复步骤(1)的操作。
(3)如果某一步数组为空,则表示找不到目标元素。
/**
* @Author:liger
* @Description:爱学Java
* @Time:2021-11-12 13:21
*/
public class Test {
public static void main(String[] args) {
int[] arr={1,2,3,4,5,6,7,8,9,10};
int index= getindexEle(arr,10);
System.out.println(index);
}
private static int getindexEle(int[] arr, int ele) {
int minIndex=0; //定义数组的最小索引
int maxIndex=arr.length-1;//定义数组的最大索引
while (minIndex<=maxIndex){
int centerIndex=(minIndex+maxIndex)/2;
if(ele>arr[centerIndex]){
minIndex=centerIndex+1;
}else if(ele<arr[centerIndex]){
maxIndex=centerIndex-1;
}else{
return centerIndex;
}
}
return -1;
}
}