读书人

2分查找的算法

发布时间: 2012-11-11 10:07:57 作者: rapoo

二分查找的算法

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; }}

?

读书人网 >编程

热点推荐