二分总结
来源:互联网 发布:教育大数据应用 编辑:程序博客网 时间:2024/05/16 00:37
二分查找基本模板:查询一个有序数列中等于target那个数字的下标(在这里如果有多个target会怎么样?)
{ while(low <= high){ int mid= high - (high - low)/2; if( a[mid] < target ) low = mid+1; else if( a[mid] > target) high = mid-1; else return mid; }}
一.在target为多个的时候,查询等于target的第一个数的下标
int Bsearch_1(int a[],int low,int high,int target){ while(low <= high){ int mid= (high + low)/2; if( a[mid] < target ) low = mid+1; else if( a[mid] > target) high = mid-1; else{ if(mid == 0 || a[mid]!=a[mid-1]) return mid; else high = mid - 1; } }}
二.在target为多个的时候,查询等于target的最后一个数的下标
int Bsearch_2(int a[],int low,int high,int target){ while(low <= high){ int mid= (high + low)/2; if( a[mid] < target ) low = mid+1; else if( a[mid] > target) high = mid-1; else{ if(mid == high || a[mid]!=a[mid+1]) return mid; else low = mid + 1; // } }}
三.查询大于target的第一个数的下标
int Bsearch_1(int a[],int low,int high,int target){ while(low <= high){ int mid= (high + low)/2; if( a[mid] <= target ) low = mid+1; else high = mid-1; } return low;}
三.查询小于target的第一个数的下标
int Bsearch_4(int a[],int low,int high,int target){ int mid; while(low <= high){ int mid= (high + low)/2; if( a[mid] >= target ) high = mid-1; else low = mid+1; } return high;}
同三
阅读全文
0 0
- 二分总结
- 二分总结
- 二分总结
- 二分总结
- 二分总结
- 二分总结
- 二分总结-.-
- 二分图总结
- 二分查找总结
- 二分查找的总结
- POJ1050总结 二分+判定
- 二分匹配总结
- 【二分】总结120527
- 二分图匹配总结
- 【二分查找】学习总结
- 二分匹配算法总结
- 二分图总结
- 二分图匹配总结
- mtk上开启调试log
- apache-common-pool2(配置参数详解,以及资源回收,从池中获取资源,将资源返还给池 逻辑解析)
- visual studio code 快捷键
- [代码整洁之道].(美)马丁.扫描版pdf
- PDF定位关键字/词所在坐标及页码
- 二分总结
- hdu 多校联赛 Colorful Tree
- js高级教程阅读笔记 第一章-js的简介
- 最小费用最大流 [网络流24题] 餐巾
- Actor
- js中数组的splice()方法
- 对request中的parameter参数进行处理
- 对话框的使用
- 【CUGBACM15级BC第12场 B】hdu 5059 Help him