本文共 609 字,大约阅读时间需要 2 分钟。
适用地方:在排序后的列表中查找对应的值 大大增强查询命中效率
/** * 二分查找 增快循环效率 * @param list 排序后的列表 * @param start 开始索引 * @param end 结束索引 * @param value 对照值 * @return */public Integer efFind(Listlist ,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;}
转载于:https://blog.51cto.com/5013162/2392239