package test; /** * @author 张牛俊 * date :2010-5-11 */ public class MySecondMidTest { public static void main(String[] args) { int [] data = {1,3,5,7,8,9,11,13}; int position = binarySearch(data, 9); if(position == -1){ System.out.println("没有找到相应的值"); }else{ System.out.println("找到了 位置为:"+position); } } public static int binarySearch(int data[],int value){ int startIndex = 0; int endIndex = data.length-1; int midIndex = (int) Math.floor((endIndex-startIndex)/2); while(data[midIndex]!=value && startIndex //调整查询的范围 System.out.println("当前执行的比较为 数组的值:"+data[midIndex]+" value值为:"+value); if(value < data[midIndex]){ endIndex = midIndex - 1; }else if(value>data[midIndex]){ startIndex = midIndex+1; } //重新调整中间的位置 midIndex = (int) Math.floor((endIndex+startIndex)/2); } return (data[midIndex]!=value) ? -1 :midIndex; } }