标签:
binarySearch源程序
public class binarySearch {
public static int binarySearch(int[] dataset ,int data) {
int beginIndex = 0; //定义起始位置
int endIndex = dataset.length - 1; //定义结束位置
int midIndex = -1; //定义中点
if(data <dataset[beginIndex]||data>dataset[endIndex]||beginIndex>endIndex){
return -1; //用二分法查找的数据必须是排好序的,因此只要比较第一个元素和最后一个元素就可以确定所查找的数据是否在数组中
}
while(beginIndex <= endIndex) {
midIndex = (beginIndex+endIndex)/2;//初始化中点
if(data <dataset[midIndex]) {
endIndex = midIndex-1; //如果查找的数据小于中点位置的数据,则把查找的结束位置定义在中点
} else if(data>dataset[midIndex]) { //如果查找的数据小于中点位置的数据,则把查找的起始位置定义在中点
beginIndex = midIndex+1;
}else {
return midIndex; //返回查找到的数据的位置
}
}
return -1;
}
public static void main(String[] args) {
int[] test1 = { 38,48,59,61,72,99,101 }; // 测试数组
System.out.print("你查找的数据位置在:"+ binarySearch.binarySearch(test1,59));
}
}
标签:
原文地址:http://my.oschina.net/ysh3940/blog/372733