二分法查找
时间复杂度:O【log(待查找数组长度)】
空间复杂度:O(待查找数组长度)
public class Hello {
public static void main(String[] args) {
int[] input={0,1,5,6,7,8,22,43,90};
System.out.println(binarySearch(input, 43));
System.out.println(binarySearch(input, 30));
}
public static int binarySearch(int[] input,int num)
{
int start=0;
int end=input.length-1;
while(end>=start){
int mid=(start+end)/2;
if(input[mid]==num)
return mid;
else if(input[mid]<num)
start=mid+1;
else
end=mid-1;
}
return -1;
}
}
运行结果: