二分查找
public class BinarySearchDemo {
public static void main(String[] args) {
int[] nums = {12,34,45,65,67,78,90,98,101,123,343} ;
int searchNum = 90 ;
System.out.println(searchNum(nums,searchNum));
System.out.println(searchNumChange(nums,searchNum));
System.out.println(Arrays.binarySearch(nums, 101)); ;
}
public static int searchNum(int[] nums , int searchNum) {
int start = 0 , end = nums.length - 1 ;
while (start <= end) {
int arrIndex = (start+end) >>> 1;
if(searchNum < nums[arrIndex]) {
end = arrIndex - 1;
}else if(nums[arrIndex] < searchNum ) {
start = arrIndex + 1;
}else if(searchNum == nums[arrIndex]){
return arrIndex ;
}
}
return -1;
}
public static int searchNumChange(int[] nums , int searchNum) {
int start = 0 , end = nums.length ;
while (start < end) {
int arrIndex = (start+end) >>> 1;
if(searchNum < nums[arrIndex]) {
end = arrIndex;
}else if(nums[arrIndex] < searchNum ) {
start = arrIndex + 1;
}else if(searchNum == nums[arrIndex]){
return arrIndex ;
}
}
return -1;
}
}