java 算法二分查找和折半查找
java算法二分查找与折半查找
折半查找:首先数组是已经排好序的
实例代码:
packagecom.hao.myrxjava;
/**
*折半查找:首先数组是已经排好序的
*
*@authorzhanghaohao
*@date2017/5/15
*/
publicclassHalfDivision{
/**
*循环实现
*
*@paramarray排好序的数组
*@paramvalue查找的值
*@returnvalue在array的位置
*/
publicstaticinthalfDivision(intvalue,int[]array){
if(array==null||array.length==0)
thrownewNullPointerException("arrayisnull");
intlow=0;
inthigh=array.length-1;
intmid=(low+high)/2;
while(array[mid]!=value){
if(array[mid]>value)
high=mid-1;
else
low=mid+1;
if(low>high)
return-1;
mid=(low+high)/2;
if(array[mid]==value)
returnmid;
}
returnmid;
}
/**
*递归实现
*
*@paramarray排好序的数组
*@paramvalue查找的值
*@paramlow查找的起始位置
*@paramhigh查找的末尾位置
*@returnvalue在array的位置
*/
publicstaticinthalfDivision(intvalue,int[]array,intlow,inthigh){
if(low>high)
return-1;
intmid=(low+high)/2;
if(array[mid]==value)
returnmid;
elseif(array[mid]>value)
returnhalfDivision(value,array,low,mid-1);
elseif(array[mid]
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西