利用折半法(二分法)进行元素查找
二分查找比线性查找:数组的元素数越多,效率提高的越明显
2、相等直接返回中间元素的索引,不相等则进入循环。
3、如果需要查找的元素小于中间值,则最大因索引的值为中建索引值减一,否则加一。
4、如果最大索引已经小于最小索引则说明没有找到,返回-1。
5、在求出此时的中间索引,并进行下一次循环,直到找出为止。
程序示例:
public static int search(int[] arr,int value) {
int min = 0;
int max = arr.length -1 ;
int mid = (min+max)/2 ;
while(arr[mid] !=value) {
if(arr[mid] > value) {
max = mid -1 ;
}else {
min = mid +1 ;
}
if(min > max) {
return -1 ;
}
mid = (min+max)/2 ;
}
return mid ;
}