【设计和算法分析】3、二进制搜索
/**
* 书:《设计和算法分析》
* 特征:二进制搜索
* 1、建立a[0:n-1]是一排的阵列已经好序。请重写二进制搜索算法,因此,搜索元素时x不用时,该阵列。返回小于x最大的元素
* S档I而超过x最小的元素位置j。在数组中的时候。I和j同样,均为x在数组中的位置
* 文件:lesson3.cpp
* 时间:2014年11月4日19:50:20
* 作者:cutter_point
*/#include <iostream>using namespace std;//这里a是用来搜索的序列,n是序列里面数据的个数,x是要找的数,i和j是用来找位置的
bool erFen(int *a, int n, int x, int& i, int& j) //i和j是两个引用
{int left = 0; //查找的起始点int right = n - 1; //查找的终点while (left < right) //仅仅要还有数据没有被遍历,那就一直循环一直到找到,或者没有{int mid = (left + right) / 2; //二分法的精髓,一分为二if (x == a[mid]) //从中间開始比較{i = j = mid; //假设正好是中间的那个数的话,把位置赋值给i,jcout << "位置是:" << mid+1<<endl;return true;}//假设不是中间那个地方的话if (x > a[mid]) //因为是已经排好序了{//得到当前小于x的元素的位置j = mid;left = mid + 1; //把后半部分作为新的起点}else{//得到当前大于x的元素位置i = mid;right = mid - 1; //把前半部分作为新的数列}}//假设没有找到//i = right;//j = left;cout << "位置是:" << j+1 << " 和 " << i+1 << "之间" << endl;return false;
}int main()
{int n, x, i=0, j=0;n = 0;cout << "依次输入数列的长度n,要找的整数x(中间用空格隔开)" << endl;cin >> n >> x;int *a;a = new int[n];cout << "输入数组数据:" << endl;for (int i = 0; i < n; ++i){cin >> a[i];}erFen(a, n, x, i, j); //i和j有两个引用getchar();return 0;
}
版权声明:本文博客原创文章,博客,未经同意,不得转载。
转载于:https://www.cnblogs.com/blfshiye/p/4752991.html
【设计和算法分析】3、二进制搜索相关推荐
- C语言在二进制搜索树中查找键的successor and predecessor后继和前任(附完整源码)
C语言在二进制搜索树中查找键的successor and predecessor C语言在二进制搜索树中查找键的successor and predecessor完整源码(定义,实现,main函数测试 ...
- c语言再大文件内搜索,C语言中大型磁盘文件的二进制搜索
这个问题经常在StackOverflow上重复出现,但我已经阅读了所有以前的相关答案,并对问题略有不同. 我有一个包含4.75亿行相同大小的23Gb文件,每行包含一个40个字符的哈希码,后跟一个标识符 ...
- php+签到+二进制方式,PHP开发中如何实现二进制搜索?
二进制搜索(折半查找)是一种用于搜索排序数组中元素的搜索技术.那么PHP中如何实现二进制搜索?下面本篇文章就来给大家介绍在PHP中如何使用迭代和递归方式来实现二进制搜索,希望对大家有所帮助. 方法一: ...
- 5.IDA-文本搜索、二进制搜索(16进制字节序列)、替换16进制
1.文本搜索 IDA文本搜索相当于对反汇编列表窗口进行子字符串搜索.通过Search▶Text(热键:ALT+T)命令启动文本搜索 选择Find all occurences(查找所有结果),IDA将 ...
- 递归算法和迭代算法_Java中没有递归的二进制搜索–迭代算法
递归算法和迭代算法 这周的任务是用Java实现二进制搜索 ,您需要编写迭代和递归二进制搜索算法 . 在计算机科学中,二进制搜索或半间隔搜索是一种分而治之的算法,用于在排序数组中定位项目的位置. 二进制 ...
- Java中没有递归的二进制搜索–迭代算法
本周的任务是用Java实现二进制搜索 ,您需要编写迭代和递归二进制搜索算法 . 在计算机科学中,二进制搜索或半间隔搜索是一种分而治之的算法,用于定位项目在排序数组中的位置. 二进制搜索通过将输入值与数 ...
- 二进制搜索算法_二进制搜索的一个扭曲故事
二进制搜索算法 by Divya Godayal 通过Divya Godayal 二进制搜索的一个扭曲故事 (A twisted tale of Binary Search) Awesome. Tha ...
- 七日掌握设计配色基础_掌握正确的基础知识:如何设计网站的导航,搜索和首页...
七日掌握设计配色基础 by Anant Jain 通过Anant Jain 掌握正确的基础知识:如何设计网站的导航,搜索和首页 (Get the basics right: how to design ...
- 二进制 |_元二进制搜索| 单边二元搜索
二进制 & | Meta Binary Search is a one-sided binary search where we work on the index using bit man ...
最新文章
- 系统超时或者服务器会话丢失,第 17 章 配置 Web 服务器(Undertow)
- 链表之打印两个有序链表的公共部分
- ZooKeeper管理分布式环境中的数据
- kaggle实战笔记_1.数据处理
- Ambari--服务管理
- html 多标签页,html更多标签
- Ruby 学习笔记6
- 中兴echat_中兴高达震撼发布12款新品 助力专网行业融合发展
- 心法利器[58] | 从长尾问题到以搜代分的机理探索
- php openssl 生成der,openssl asn.1 生成DER文件,把DER文件转换成内部数据结构
- c语言实参和形参占用存储单元_c语言的形参是否占存储单元
- html 英文逗号,英语写作中不可小觑的五大错误 逗号别乱用
- pygame战棋游戏制作之战棋回合切换(五)
- 超详细HttpClient加载安全证书post请求访问https示例
- Neural Style Transfer: A Review
- 华南理工计算机应用在线答题,华南理工大学计算机应用基础随堂练习题目及答案...
- LeetCode——第121题:买股票的最佳时机
- 轻松搭建影音服务器(转)
- 海信IP103H-S905L3-B-5621DS安卓9.0线刷包(内蒙古移动)
- 学计算机专业买什么牌子的电脑好,学习平板电脑什么牌子好【图解】
热门文章
- jdk jre jvm三者之间的关系
- 028_SpringBoot整合Redis
- php图片等比例压缩,php实现图片上传并等比例压缩
- 用计算机语言编写的完成一定功能,C+的+预备知识.ppt
- 计算机主机清理步骤,怎么清理主机灰尘 清理灰尘教程
- mysql什么格式转换_MySQL日期格式转换
- activexobject对象不能创建_【设计模式】建造者模式:你创建对象的方式有它丝滑吗?...
- Thread 与Runnable区别详解
- View类的xml属性和相关方法说明
- 第六章 ORacle权限设置、schema、通过profile 限制用户恶意登录、通过profile限制使用期限