/**
* 二分法查找
* @author Smilexs
*
*/
public class BinarySearch {
public static void main(String[] args) {
int[] array=new int[]{13,14,19,21,35,78,119,199,201};
int index= binarySearch(array,21);
System.out.println("查找到的索引为:"+index);
}
/**
* 二分法查找
* @param array ---排序后的数组
* @param searchNum ---查找的数
* @return 查找到的索引,若未找到返回-1
*/
private static int binarySearch(int[] array,int searchNum) {
int min=0;
int max=array.length-1;
int mid=-1;
int resIndex = -1;//返回的索引
while(min <= max){
mid= (min+max)/2;
if(array[mid]==searchNum){
resIndex = mid;
break;
}
if(array[mid] < searchNum){
min= mid+1;
}else {
max= mid-1;
}
}
return resIndex;
}
}
结果: