Java二分法在已排序数组中查找指定数

public static int binarySearch(int[] sortedArr , int target){
		
		int start = 0;
		int end = sortedArr.length - 1;
		
		
		do{
			int mid = (start + end)/2;
			
			if(target > sortedArr[mid]){
				start = mid+1;
			}else if (target < sortedArr[mid]){
				end = mid - 1;
			}else{
				return mid;
			}
		}while(start != end);
		
		// 未找到
		return -1;
	}


此方法适用于已排好序的查找,未排序的话需要先排序再调用此方法。二分法对于已排序的数组效率较高,而对于未排序的数组因为需要先排序,效率可能比其他的方法稍低(加上排序的时间复杂度)。

你可能感兴趣的:(Java)