c++二分法

如上图,二分法查找,查找的过程是先确定待查找数的范围区间,然后逐步缩小查找范围,直到找到或找不到为止。

 

c++代码的实现

 1 #include<iostream>
 2 using namespace std;
 3 const int len=10;
 4 int find_array(int a[],int len,int key);
 5 int full_array(int a[],int len);
 6 int main()
 7 {
 8     int i_array[len];
 9     full_array(i_array,len);
10     cout<<"input the element you want to find"<<endl;
11     int key,num;
12     cin>>key;
13     num=find_array(i_array,len,key);
14     if(num!=-1)
15     {
16         cout<<"successful find"<<i_array[num]<<endl;
17     }
18     else
19     {
20         cout<<"not the element"<<endl;
21     }
22 
23     return 0;
24 }
25 
26 int full_array(int *a,int len)
27 {
28     cout<<"please input "<<len<<" element init the array"<<endl;
29     int i=0;
30     while(i!=len)
31     {
32         cin>>a[i];
33         i++;
34     }
35     return 0;
36 }
37 
38 int find_array(int a[],int len,int key)
39 {
40     int low=0,high=len-1,middle;
41     while(low<high)
42     {
43         middle=(low+high)/2;
44 
45         if(key==a[middle])
46         {
47             return middle ;
48         }
49         else if(key>a[middle])
50         {
51             low=middle+1;
52         }
53         else
54         {
55             low=middle-1;
56         }
57         
58     }
59     return -1;
60 }

ok。

转载于:https://www.cnblogs.com/newworldcom/p/3402018.html

weixin_33949359
关注 关注
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
二分法查找(c++版)
11-24
给定的表中用二分法查找指定数 给定的表中用二分法查找指定数 给定的表中用二分法查找指定数
C++算法篇 二分算法
热门推荐
流年的博客
07-31 1万+
6、跳石头 NOIP2015 提高组 题目背景 一年一度的“跳石头”比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间,有N块岩石(不含起点和终点的岩石)。在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达终点。 为了提高比赛难度,组委会计划移走一些岩石,使得选手们在比赛过程中的最短跳跃距离尽可能长。由于预算限制,组委会至多从起点和终点之间移走M块岩石(不能移走起点和...
C++ 二分法OJ
Han同学
02-24 789
二分法
C++——二分法
m0_48748418的博客
05-16 1490
如果中间元素等于目标元素,那么查找成功,返回中间位置。如果中间元素大于目标元素,说明目标元素可能在左半部分,更新结束位置为中间位置减1。如果中间元素小于目标元素,说明目标元素可能在右半部分,更新起始位置为中间位置加1。它的基本思想是将查找范围逐渐缩小一半,直到找到目标元素或确定目标元素不存在。如果目标元素不存在于列表中,那么在某个时刻,起始位置将大于结束位置,此时可以确定目标元素不存在。的函数,它接受一个有序整数数组和一个目标元素作为输入,并返回目标元素在数组中的索引。如果目标元素不存在,函数返回-1。
C++实现二分法详解
QtCompany的博客
04-19 922
同理,当 nums[mid] < target 时,需要将区间向右收缩,即 left = mid+1,因为在 “左闭右开” 的区间下,新的查找区间变成 [mid+1,right) 才不会漏掉值。注意这里的判断条件改成了当 nums[mid] == target 时,left = mid+1。根据上述代码,可以发现如果查找目标值的左边界,在满足 nums[mid] == target 时,需要缩小搜索区间的上界 right,在区间 [left,mid] 中继续搜索,直到搜索完毕 left==right。
C++二分法
a111737289291的博客
01-24 1335
把区间[a,b]分成n等分,每个子区间长度为x,及算点xi=a+i*x(i=0,1,2,3...)的函数值f(xi),若函数值为0,则为一个实数根,若满足f(xi)*f(xi+1)
C++二分法在数组中查找关键字的方法
09-03
主要介绍了C++二分法在数组中查找关键字的方法,涉及C++数组查找算法的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
c++ 二分法查找 二分法排序 混合排序 希尔排序 插入排序
11-24
binary sort,二分法查找,binary search, 二分法排序,merge sort 混合排序,shell sort 希尔排序,insertion sort 插入排序。数据结构 data structure
C++二分法查找算法
10-17
class binary_search { public: int * arr; int nElems; public : binary_search(); binary_search(int max); virtual ~binary_search(); int find(int searchKey); void insert(int value);...
c++褊写的二分法查找程序
03-30
c++二分法查找,先进行冒泡排序后查找 int main() { int num[100]; int ncount; while (1) { cout输入数据元素个数(输入非正数即退出程序):"; cin>>ncount; if(ncount) exit(1); Input(num,ncount); //...
C++】二分算法
cout0
09-30 1892
简介 二分查找又叫折半查找,他是有序线性表的一种查找算法。 算法思想 假定升序排列,下标从000开始,二分查找函数如下,返回查找到的下标,查找失败返回−1-1−1。 /*二分查找*/ int bin_find(int *num,int len,int key){ int low,high,mid; low=0;//查找下界 high=len-1;//查找上界 while(low<=high){ mid=(low+high)/2;//折半 if(key<nu
二分法总结以及c++代码实现
qq_18891081的博客
08-02 2389
起初对于有序数列查找指定的元素,我们通常采用循环遍历的方法其时间复杂度为O(n),空间复杂度为O(1)。例如在有序数列{1,2,3,4,5}中,查找元素的值为3所在的位置,我们要从下标为0开始遍历所有的数值,当元素的值为3时返回元素所在的下标。 但是,这种方法的时间复杂度较高,所以这时引入二分查找的思想,设置左边界left,右边界right,中间元素的下标mid,通过比较mid与目标值的大小,来变化区间。 1.寻找指定元素的下标: 对于数组num[8] = {1,2,2,2,...
c++二分算法
我的博客
03-28 3873
hello😄 又来发算法了💡 这次来发一下「二分」 如果你学过二分没很长时间,你可能已经倒吸一口凉气了 不要想复杂,一步一步来
[LeetCode]704.二分查找及相关题目
夜来疯的博客
10-09 331
数组理论基础 数组理论 数组是存放在连续内存空间上的相同类型数据的集合 数组可以方便的通过下标索引的方式获取到下标下对应的数据 二维数组在内存的空间地址是连续的 二分查找 LeetCode 704.二分查找 二分法使用前提: 有序元素 + 无重复元素 区间的定义 区间的定义就是不变量。要在二分查找的过程中,保持不变量,就是在while寻找中每一次边界的处理都要坚持根据区间的定义来操作,这就是循环不变量规则。 二分法的区间定义分为两种 左闭右闭, [left,right] 1)while(
C++二分解释【初学者放心进,简单易懂】
AmyZhangXiwen的博客
08-06 735
二分思想的解释
二分法的应用-C++
ymhdt的博客
03-28 1483
二分法是典型的分治算法。 我们使用二分法通常的目的是为了减小遍历规模。假如求解一个问题,本来需要遍历整个数组,得到结果。但是由于数组的特殊性或问题的特殊性,我们能够排除一半的错误结果不需要遍历,这就是二分法的使用逻辑。 一般,二分法会把一个时间复杂度为O(n) 的算法缩减为复杂度O(log n) 下面使用二分法求解几个问题: 1、问题:在一个有序数组中,找某个指定数值是否存在。 解:要求解特定值,假设特定值为A。由于数组有序,我们可以先求数组的中间位置的值B,如果A>B,则说明A在B的右
C++二分算法(二分查找&二分答案)细节详解
qq_73635134的博客
12-09 5025
C++二分算法(二分查找&二分答案)细节详解 二分算法可以分为二分查找和二分答案。 以在一个升序数组中查找一个数为例。它每次考察数组当前部分的中间元素,如果中间元素刚好是要找的,就结束搜索过程;如果中间元素小于所查找的值,那么左侧的只会更小,不会有所查找的元素,只需到右侧查找;如果中间元素大于所查找的值同理,只需到左侧查找。
devc++二分法示例
最新发布
05-01
二分法是一种常见的算法,在C++中也有多种实现方式。 以下是一个Dev-C++二分法示例代码,它可以在数组中查找某个元素的位置: ``` #include using namespace std; int binarySearch(int arr[], int left, int ...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 在element ui中有关对话框el-dialog关闭事件(详细教程) 13384
  • 使用Idea打开Maven项目的正确姿势 12924
  • 关于常用序号的几点说明(数字序号顺序) 12235
  • Linux 无法本地登录解决方法 报错/lib/security/pam_limits.so 11869
  • 因子分析——因子得分 11550

最新评论

  • xutils3批量上传文件

    weixin_43698148: java后端怎么接收RequestBody

  • spring boot学习(转)

    IT利刃出鞘: 深得人心,正如古人云:别裁伪体亲风雅,转益多师是汝师。

  • 图片Premultiplied Alpha到底是干嘛用的

    weixin_40802746: 第四张颜色图 127,25,0,0.55 是预乘后的颜色 这个的图呈现在白底上的实现颜色应该是 231,45,0,0.55,所以你这张图看起来比较黑,实际图中是没有黑色色值的,这跟我们出黑边的原理是一样,的就是因为把预乘颜色直接呈现。

  • Presto 常用配置及操作

    CyAuroras: 常见错误 第二个 是jdk8 还报这个错误是什么原因呢

  • Django服务端读取excel文件并且传输到接口

    小小星辰丶: 下载之后,打不开吧

最新文章

  • CommonJS, AMD 和 RequireJS之间的关系(转载)
  • IMSI MCC MNC概念
  • Vim使用taglist功能
2019年346篇
2018年686篇
2017年967篇
2016年561篇
2015年432篇
2014年299篇
2013年296篇
2012年264篇
2011年216篇
2010年148篇
2009年115篇
2008年102篇
2007年80篇
2006年42篇
2005年28篇
2004年7篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

聚圣源中央13套在线直播韩国mbc姓刘宝宝起名大全修道学生个人起名软件贾姓女孩的起名大全笔记本无线网卡和马杨姓婴幼儿起名重庆老火锅朝天门火锅加盟费用文 起名菜根谭的智慧兰卡威家具国子监来了个女弟子在线观看余干天气预报win7系统下载微信电脑版打不开皇太子秘史演员表投资公司起什么名字好西甲冬季转会圣丽奴学园2021最火感悟人生短句真千金是满级天师12星座运势蒂凡尼壁纸手机ip香港奇案之吸血贵利王五行属金的起名的字牛奶公司起名大全公务员年度考核总结淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化