话不多说上干货:
package corejava; /** * Created by lenovo on 2016/4/13. * 二分查找又称折半查找,它是一种效率较高的查找方法。 * 二分查找要求:1.必须采用顺序存储结构 2.必须按关键字大小有序排列。 */ public class BinarySearch { public static void main(String[] agrs){ int[] array = {1,3,4,5,6,7,8,9,22,33,44,55,66,77,88,99}; int des = 11; int index = binarySearch(array,des); if(index != -1){ System.out.println("目标数值"+des+"的下标为"+index+":"+array[index]); }else{ System.out.println("没有查找该目标数值"); } } /** * 二分法查找: *有序数组 * @param array * 需要查找的数值 * @param des * 返回目标数值下标,若没有查到目标数值返回-1 * @return */ public static int binarySearch(int[] array,int des){ int low = 0; int hight = array.length - 1; int mid; while(low <= hight){ mid = low + (hight - low)/2; if(array[mid] == des){ return mid; }else if(array[mid] < des){ low = mid + 1; }else{ hight = mid - 1; } } return -1; } }