本文中介绍的线性查找为二分法查找方式,前提要求数组或者序列是有序的。二分法查找是查找方式中效率较高的一种,时间复杂度是logN,推导过程比较简单,设次数为x,N*(1/2)^x=1(之所以等于1,是考虑到最坏情况,查找到最后只剩下1个元素);则x=logN,底数是2。其代码如下:
public int getIndex(int[]arr,int value){
int min=0;
int max=arr.length-1;
int mid=(min+max)/2;
while(true){
if(min>max){
return -1;
}
if(arr[mid]==value){
return mid;
break;
}else{
if(arr[mid]>value){
max=mid-1;
mid=(min+max)/2;
}else if(arr[mid]<value){
min=mid+1;
mid=(min+max)/2;
}
}
}
}
本文介绍了二分法查找的原理和应用,这是一种适用于有序数组或序列的高效率查找算法,时间复杂度为logN。代码示例展示了如何在Java中实现二分查找,通过不断缩小查找范围来定位目标值。
521

被折叠的 条评论
为什么被折叠?



