二分搜索应用二
来源:互联网 发布:体育套利软件 编辑:程序博客网 时间:2024/06/02 18:23
从一组有序数组中查找target第一次出现的位置
从有序数组中查找target 第一次出现的位置的数学关系如下:
假定 数组的左边的下标为:L, 右边的下标为R,则一定满足一下数学表达式
1.(L+1) ==R && arr[L] < target && arr[R] >= target2.arr[L] < target, arr[R] >= target
综上两个条件,在java代码的实现中,设置为L=-1,R= n(n为数组的长度)
private static int binarySearchFirst(int[] arr,int target) { int L = -1; int n = arr.length; int R = n; //设定目标索引值,从下标0开始,为了查找第一个元素 int p = 0; while (L +1 != R) { int mid = (L+R) / 2; if (arr[mid] < target) { L = mid; } else { R = mid; } //try catch用于检查数组下标越界,如果数组下标越界,就忽略 try { if ((L+1) == R && arr[L] < target && arr[R] >= target) { p = R; } } catch(Exception e) { } } //判断查找到的目标值的索引是否有效 if (p >= n || arr[p] != target) { p = -1; } return p; }
阅读全文
0 0
- 二分搜索应用二
- 二分搜索树(二)
- 二分搜索的应用
- 二分搜索应用
- 二分搜索的巧妙应用
- poj1064二分搜索的应用
- poj3061----二分搜索的应用
- 二分搜索及其变形应用
- 二分搜索与三分搜索的应用
- 查找算法(二)二分搜索法
- 第二章:二分搜索思想的应用
- NOJ1109搜索(二)——二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 关于webfrom的页面绑定后台获取
- 关于基类指针指向子类对象,构造函数和析构函数调用的顺序的问题。
- Microsoft Visual Studio 中printf的替代函数OutputDebugString
- C++和Lua交互教程(基于LuaBridge)
- 1.3继承与类作用域
- 二分搜索应用二
- [NOTE][gitHub]Fetching latest commit…
- 跟我学习dubbo-简介(1)
- 正则校验只能输入整数或小数
- B-tree 和B+tree
- Inno Setup入门(十)——操作注册表
- payload 2
- YOLO: Real-Time Object Detection深度网络: 在Darknet上的实现方式
- 基于python的互联网软件测试开发(自动化测试)-全集合