二分法——while等号
来源:互联网 发布:运营淘宝店要学什么 编辑:程序博客网 时间:2024/06/12 13:53
今天在做剑指offer 二维数组中查找问题
想用二分查找。废话不多说。
int target = in.nextInt(); int left = 0; int right = aa.length - 1; int mid = (left + right) / 2;
while (aa[mid] != target && left < right) { if (aa[mid] < target) left = mid + 1; else if (aa[mid] > target) right = mid - 1; else { return true; } // mid = left + (left + right) / 2; mid = (left + right) / 2; } if (aa[mid] == target) { return true; } else { return false; }这个版本里面,while里面没有 = 。例如在 数组 1,3,5,7,8,9里面找3.那么在while循环退出时,left, right 都指向值3,left,right,mid都为索引 1。即需要在while外面判断left==right 的情况。第二种版本 代码量比较少 重要的地方就是while里面的判断条件需要改为left<=right如下int target = in.nextInt();int left = 0;int right = aa.length - 1;int flag = 0;while ( left <= right) { int mid = (left + right) / 2; if (aa[mid] < target) left = mid + 1; else if (aa[mid] > target) { right = mid - 1; } else{ return true; }}
阅读全文
0 0
- 二分法——while等号
- Subsequence——二分法
- 35. Search Insert Position-二分法while版
- ACM投票——二分法
- 数据结构——二分法查找
- 数据结构——二分法查找
- 二分法查找——对数
- 简单递归—二分法查找
- 排序—二分法插入排序
- 查找(一)—— 二分法查找
- 二分法查找算法——DEMO
- 第14周 电子词典——二分法
- 排序算法——二分法插入排序
- 实现二分法查找——java实现
- sqrt源代码问题——二分法
- 随手敲代码——二分法
- 二分法入门——POJ1064 ,POJ2456 ,POJ3111
- 基础算法——查找(二分法)(python)
- 1.git安装及创建版本库,git init,git add,git commit
- c++二维数组斜遍历,折线遍历
- 学习MultiViewAdapter——4
- CoordinatorLayout中使用WebView冲突
- sql
- 二分法——while等号
- HDU-6004-Periodical Cicadas
- 可变参数列表解析
- 201412-2 Z字形扫描 ccf
- js之初识函数
- 通达OA智能开发平台CRM系统 实现数据的自动计算
- 微信公众平台开发-消息管理-发送模板消息
- jdbc-(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)总结
- OpenPose+VS2015+Windows+CUDA8+cuDNN5.1 官方配置教程