/**
* 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;
* 其缺点是要求待查表为有序表,且插入删除困难。
* 因此,折半查找方法适用于不经常变动而查找频繁的有序列表。
* @author gulijiang
*
*/
public class BinarySearch {
public static void main(String[] args) {
int[] a = {1,3,5,7,8,10,12,15,16,19,22,23,25};
int b = sort(a, 0, a.length-1, 15);
System.out.println(b);
}
/**
* 排序
* @param a 得有序的数组
* @param beginIndex 起点下标
* @param endIndex 终点下标
* @param search 搜索的值
* @return
*/
public static int sort(int[] a,int beginIndex,int endIndex,int search){
int middleIndex = (beginIndex+endIndex)/2;
if(beginIndex <= endIndex){
if(search == a[middleIndex]){
return middleIndex;
}
else if(search < a[middleIndex]){
//从中间的往前面找
return sort(a, beginIndex, middleIndex-1, search);
}
else{
//从中间的后面查找
return sort(a, middleIndex+1,endIndex, search);
}
}
return -1;
}
}
Java实现二分查找
最新推荐文章于 2023-12-25 22:38:53 发布