标签:span targe style while lis ret 精确 code div
精确二分搜索目的在于确定有没有
代码如下
int l = 0, r = list.size() - 1; while(l <= r){ mid = l + (r - l) / 2; if(list[mid] == target) return mid; else if(list[mid] < target) l = mid + 1; else r = mid - 1; } return -1;
而非精确的二分搜索在于如果没有搜索到目标位置,也可以将小于目标的最大值的下标返回
//mid即为小于tar的最大值的下表 //注意mid为-1和list.size() - 1的时候 int l = 0, r = list.size() - 1; int mid = l + (r - l) / 2; while(l <= r){ mid = l + (r - l) / 2; if(list[mid] == target){ return true; }else if(list[mid] < target){ l = mid + 1; }else{ r = mid - 1; if(l > r) mid--; } }
标签:span targe style while lis ret 精确 code div
原文地址:https://www.cnblogs.com/zousantuier/p/9552929.html