二分法查找(大于,大于等于x的最小,小于,小于等于x的最大值)
#include<stdio.h>
#include<algorithm>
using namespace std;
//小于x的最大
//大于x的最小
//x的第一个
//x的第二个 int main()
{
int a[]= {,,,,,,,,,};
sort(a,a+);
//sort(a,a+10,cmp);
int x;
while(scanf("%d",&x)!=EOF)
{
int low=,high=,mid;
for(int i=;i<;i++)
printf("%d ",i);
printf("\n");
for(int i=;i<;i++)
printf("%d ",a[i]);
printf("\n");
while(low<=high)
{
mid=(low+high)/;
/*if(a[mid]==x)//一般二分查找相等
{
printf("%d\n",mid);
break;
}
else if(a[mid]>x)
high=mid-1;
else
low=mid+1;*/ /*if(a[mid]>x) //大于x的最小值
high=mid-1;
else
low=mid+1;*/
if(a[mid]<x)//小于x的最大值
//这样理解,l一直在向右移动,直到a[mid]大于等于x,即找出的是大于等于x中的最小值
low=mid+;
else
high=mid-;
printf("%d %d %d\n",low,mid,high);
//x的第一个值即为a[high+1] (如果数组中有x)
//x的第二个值即为a[high+2] (如果数组中有两个x)
}
//printf("%d %d %d\n",low,mid,high);
//printf("%d %d\n",low,high);//大于x的最小值,小于等于x的最大值
printf("%d %d\n",low,high);//大于等于x的最小值,小于x的最大值
}
return ;
}
二分法查找(大于,大于等于x的最小,小于,小于等于x的最大值)的更多相关文章
- find查找大于1M小于10M的文件 $ find . -size +1M -size -10M
查找大于1M小于10M的文件$ find . -size +1M -size -10M
- 二分练习题2 查找大于等于x的最小元素 题解
题目描述 现在告诉你一个长度为 \(n\) 的有序数组 \(a_1, a_2, ..., a_n\) ,以及 \(q\) 次询问,每次询问会给你一个数 \(x\) ,对于每次询问,你需要输出数组 \( ...
- P1042 查找大于等于x的最小元素
题目描述 现在告诉你一个长度为 \(n\) 的有序数组 \(a_1, a_2, ..., a_n\) ,以及 \(q\) 次询问,每次询问会给你一个数 \(x\) ,对于每次询问,你需要输出数组 \( ...
- iOS 排序算法总结、二分法查找
1.插入排序 在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的.如此反复循环,直到全部排好顺序. 直接插 ...
- php排序算法及二分法查找
插入排序 思想:将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表.即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止. 要点:设立 ...
- 查找算法(顺序查找、二分法查找、二叉树查找、hash查找)
查找功能是数据处理的一个基本功能.数据查找并不复杂,但是如何实现数据又快又好地查找呢?前人在实践中积累的一些方法,值得我们好好学些一下.我们假定查找的数据唯一存在,数组中没有重复的数据存在. (1)顺 ...
- Java基础(50):二分法查找的非递归实现和递归实现(完整代码可运行,参考VisualGO理解更佳)
一.概念 二分查找算法也称折半查找,是一种在有序数组中查找某一特定元素的搜索算法. 二.算法思想 搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束:如果某一特定元素大于或者 ...
- 二分法查找(Binary Search)
--摘要:二分法的介绍已经很多了,但并不直观,因此此文诞生,希望批评指正. 二分查找是在有序数组中查找一个元素的算法,通过比较目标元素与数组中间元素来查找,如果目标值是中间元素则将返回中间元素位置. ...
- Python二分法查找及变种分析
基于Python3 普通二分法查找目标值的index 二分法查找的思路很简单,先确定好列表nums的一头start一尾end,中间值middle根据头尾数值之和用地板除法除以2,即(start + e ...
随机推荐
- ubuntu 屏幕截图
无意间发现这个组合 Fn+Shift+t,按下之后,鼠标变成一个十字, 选择一个范围,okay,可以截图了
- Graceful degradation versus progressive enhancement
http://ued.taobao.org/blog/2008/10/understanding-progressiveen-hancement-chs-translation/ http://www ...
- 安装v2meet客户端 进入会议依然 提示 您还未安装视频会议的客户端,请下载安装
解决办法 1.安装软件,要用管理员权限安装 2.装一个360浏览器,登录会议,这样就成功了.原装IE9却不行. 估计是IE9做了一些安全限制,由于时间关系就没有再处理了.
- 如何使用css和jquery控制文章标题字数?
如何使用css控制文章标题字数? 最佳答案 控制文章标题字数,不是动态网页的专利,如果静态页面使用CSS样式,也可以实现相同的效果! 看这个例子,你们可以复制到记事本保存为HTML文件看效果! < ...
- 10、android学习资源整理
1.github上整理好的开源工程 https://github.com/Trinea/android-open-project 2.最流行的android组件大全 http://colobu.com ...
- Taxes
Taxes can be one of the largest cash outflows that a firm experiences.The size of the tax bill(税单) i ...
- 《JavaScript高级程序设计》第6章 面向对象程序设计
6.1 对象属性 6.1.1 属性类型 1. 数据属性 我们一般所说的属性就是数据属性,它用来将一个字符串名称映射到某个值上 数据属性的4个特性: configurable, enumerable, ...
- 开发EXTMVC框架前需要了解的基础知识整理
1.组件选择器 目的:了解如何选择Extjs中的组件,就跟学习jquery时一定会先要学习:$()选择器一样. 常用场景: 1.在controller中的control事件中用到 ...
- 【Python】内置数据类型
参考资料: http://sebug.net/paper/books/dive-into-python3/native-datatypes.html http://blog.csdn.net/hazi ...
- 【POJ】【2891】Strange Way to Express Integers
中国剩余定理/扩展欧几里得 题目大意:求一般模线性方程组的解(不满足模数两两互质) solution:对于两个方程 \[ \begin{cases} m \equiv r_1 \pmod {a_1} ...