二分查找模板
来源:互联网 发布:c语言 socket服务端 编辑:程序博客网 时间:2024/05/28 09:32
int lower(int l,int r,int key){ while(l<r) { int mid=l+(r-l)/2; if(a[mid]==key) r=mid; if(a[mid]<key) l=mid+1; if(a[mid]>key) r=mid; } return l;}int upper(int l,int r,int key){ while(l<r) { int mid=l+(r-l+1)/2; if(a[mid]==key) l=mid; if(a[mid]<key) l=mid; if(a[mid]>key) r=mid-1; } return l;}int binary(int l,int r,int key){ while(l<r) { int mid=l+(r-l)/2; if(a[mid]==key) r=mid; if(a[mid]<key) l=mid+1; if(a[mid]>key) r=mid; } if(a[l]==key) return l; else return -1;}
binary在找不到相同元素时返回-1,upper和lower会返回满足条件的第一个位置
double fsearch(double l,double r,double key){ while(r-l>e) { double mid=l+(r-l)/2; if(key<mid) r=mid; else l=mid; }return l;}
浮点二分时,不用考虑边界问题
double threesearch(double l,double r){ double m1,m2; while(r-l>e)//e是自定义精度 { m1=l+(r-l)/3; m2=r-(r-l)/3; if(val(m1)<val(m2)) l=m1;//val是自定义函数 else r=m2; }}三分
0 0
- 二分查找模板 nyoj626
- 二分查找模板
- 二分查找模板
- 二分查找(模板)
- 二分查找【模板】
- 二分查找模板
- 二分查找实用模板
- 二分查找实用模板
- 二分查找模板
- 二分查找模板
- 常用二分查找模板
- 二分查找 模板
- 模板--二分查找
- 二分查找模板C++
- 二分查找(模板)
- 【模板】二分查找
- 二分查找模板
- 函数模板实现二分查找
- java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
- leetcode 377 Combination Sum IV 动态规划
- eclipse最有用快捷键整理(zhuan)
- MFC界面库BCGControlBar v25.0新功能详解六:属性网格和其他
- Page_load事件 Page.IsPostBack属性
- 二分查找模板
- JSPatch演讲视频
- 解决bootstrap-table多次请求只触发一次的问题
- 溢出、上溢、下溢
- dom2和dom0的定义和区别
- Picasso 图片加载
- 获取验证码的定时器
- poj3984——迷宫问题(BFS)
- Docker国内镜像地址和下载安装