基于Java实现的一个简单二分法查找代码
package cn.guyouda.algorithms;
/**
*
* @author Youda
*
*基于Java实现的一个简单的二分法查找程序
*/
public class BinarySearch {
/**
* 基于二分法查找的前提是数组必须有序
* @param key 需要查找的数据
* @param array 数据源数组
* @return 返回查找到该值的数组位置,若返回-1则不存在
*/
public static int search(double key,double[] array){
int low = 0;
int high = array.length-1;
int targetLocation = -1;
while(low<=high){
int mid = low + (high - low)/2;
if(key<array[mid]){
high = mid-1;
}
if(key>array[mid]){
low = mid+1;
}
if(key==array[mid]){
return mid;
}
}
return -1;
}
}