二分法(查找元素及其上界与下界)
来源:互联网 发布:淘宝网店流程怎么弄 编辑:程序博客网 时间:2024/06/14 06:29
利用二分法去查找某个元素效率高,将所要查找的元素称为key,有时利用二分法进行查找key的上界与下界,下界通常为key第一次出现的位置,上界通常为第一个大于key的位置。
1 寻找key的代码:
int find(int array[], int len,int key) { int left = 0, right = len - 1 ; // attention ! while (left <= right) { // attention ! int mid = left + ((right - left)>>1); if (array[mid] == key) // !! return mid; else if(array[mid] < key) left = mid + 1; else right = mid - 1; } return array[left]==key?left:-1;}
2 寻找key下界的代码:
int find_lowerbound(int array[], int len,int key) { int left = 0, right = len ; // attention ! while (left < right) { int mid = left + ((right - left)>>1); if (array[mid] < key) // !! left = mid + 1; else right = mid; } return left<len && array[left] == key ? left:-1;}
3 寻找key上界的代码:
int find_upperbound(int array[], int len, int key) { int left = 0, right = len; // attention ! while (left < right) { int mid = left + ((right - left) >> 1); if (array[mid] <= key) left = mid + 1; else right = mid; } return left >= 0 && array[left ] == key ? left : -1;}
阅读全文
0 0
- 二分法(查找元素及其上界与下界)
- 二分法(查找、求上界、求下界)
- 二分查找(上界,下界)
- 上界,下界,二分查找
- 【离散数学】最大元素、最小元素、极大元素、极小元素、上界、下界、最小上界(上确界)、最大下界(下确界)
- 二分查找求上界 下界
- 二分查找上界和下界
- 技术上界与使用下界
- 二分查找求上界和下界
- UVA10487二分查找上界和下界
- 二分查找求上界和下界
- 二分查找,二分上界,二分下界
- 【java】二分查找 求下界 求上界
- 二分查找求上界和下界
- C++ 二分法查找元素及其索引
- java泛型中的上界与下界
- 数据结构(一)STL二分法查找实现及上下界
- scala的协变与逆变、上界与下界
- Springmvc图片上传方法,错误:Expected MultipartHttpServletRequest: is a MultipartResolver configured?
- 数据库面试题
- 用surfaceview播放FFmpeg解码视屏
- 深入学习Hibernate4_05hibernate中对象的四种状态(临时状态,持久化状态,游离状态,删除状态),以及常用方法的介绍
- 史上最简单的SpringCloud教程 | 第三篇: 服务消费者(Feign)
- 二分法(查找元素及其上界与下界)
- 为什么要重提“内容为王”
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛 Problem F: qwb has a lot of Coins (博弈论)
- 浅谈线程
- 项目进度(九)
- 进程同步
- SnackDown 2017 Online Elimination Round 记录 & 简要题解
- 【题解】【最短路】行动!行动!
- 定时任务高效触发