Java学习资料-Java常用算法-二分查找算法

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


你可能感兴趣的:(Java学习资料-Java常用算法-二分查找算法)