二分查找
来源:互联网 发布:苹果5s怎么改4g网络 编辑:程序博客网 时间:2024/05/29 06:34
/* 形如:for(int i=0;i<n;i++) if(f(i) >= c) //其中,f 为 i 的函数,c 为与 f 无关的量,大小于符号可以任意. break; 都可以写成二分的形式,将O(N)的复杂度降为O(logN).*/int Binary_Search(int *a,int l,int r,int x) //在递增序列中找到第一个不小于x的值.{ if(a[r] < x) return r+1; while(l < r) { int mid = (l+r)/2; if(a[mid] < x) l = mid+1; else r = mid; //一直让a[r]>=x,最后剩下一个即为我们所要的解. } return r;}/* Ps:如果条件改为“大于”,则将两个if中的 < 改为 <= 即可. 即二分写法中的if条件与暴力写法中的if条件正好相反.*/
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- POJ-1029简单推断题
- 停车场管理 -- 队列 栈 实现
- 服务器数据库系列 - 日志系列 - Nginx日志
- Nutch 2.0 之 Apache Gora MR介绍
- Js中数据类型测试
- 二分查找
- VS2010 发布网站时文件丢失
- 三星“打法”:先模仿对手 再吃掉对手
- Gridland 数学题 hoj
- 帝国----关于自定义列表的使用
- linux 启动脚本以及解决chkconfig的办法
- cvNormalize函数
- Linux 维护日志:今日系统宕机,问题记录
- 【100题】找出一个字符串中第一个只出现一次的字符