基础算法系列 之线性查找

本文中介绍的线性查找为二分法查找方式,前提要求数组或者序列是有序的。二分法查找是查找方式中效率较高的一种,时间复杂度是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;
			}
		}
	}
}
 

猜你喜欢

转载自blog.csdn.net/langxiaolin/article/details/113443801