适用地方:在排序后的列表中查找对应的值 大大增强查询命中效率
创新互联是一家专业提供慈利企业网站建设,专注与网站制作、做网站、H5高端网站建设、小程序制作等业务。10年已为慈利众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。
/**
* 二分查找 增快循环效率
* @param list 排序后的列表
* @param start 开始索引
* @param end 结束索引
* @param value 对照值
* @return
*/
public Integer efFind(List list ,int start, int end ,int value){
//零界值处理
if(start > end){
return null;
}
int mid = (end-start) / 2 + start;
Integer item =list.get(mid);
if(item<=value && item>=value){
return item;
}else if(item > value){
return efFind(list,start, mid-1,value);
}else if(item < value){
return efFind(list,mid+1,end,value);
}
return null;
}