由于比较简单,就直接贴源码了。
package demo;
public class BinarySearch {
public static void main(String[] args) {
int[] input = {1,3,5,7,9,100,200,300,301,305};
System.out.println("找到的位置下标为: "+BinarySearch.binarySearch(input, 1)
+ " input 的长度 " + input.length);
}
public static int binarySearch(int[] input,int target) {
int low = 0;
int high = input.length-1;
while(low<=high) {
int middle = (low+high)/2;
if(input[middle] == target) {
return middle;
} else if(input[middle] < target) { //目标在中点的左边
low = middle + 1;
} else { //目标在中点的右边
high = middle -1 ;
}
}
return -1;
}
}