/**
* 书:《设计和算法分析》
* 特征:二进制搜索
*       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、二进制搜索相关推荐

  1. C语言在二进制搜索树中查找键的successor and predecessor后继和前任(附完整源码)

    C语言在二进制搜索树中查找键的successor and predecessor C语言在二进制搜索树中查找键的successor and predecessor完整源码(定义,实现,main函数测试 ...

  2. c语言再大文件内搜索,C语言中大型磁盘文件的二进制搜索

    这个问题经常在StackOverflow上重复出现,但我已经阅读了所有以前的相关答案,并对问题略有不同. 我有一个包含4.75亿行相同大小的23Gb文件,每行包含一个40个字符的哈希码,后跟一个标识符 ...

  3. php+签到+二进制方式,PHP开发中如何实现二进制搜索?

    二进制搜索(折半查找)是一种用于搜索排序数组中元素的搜索技术.那么PHP中如何实现二进制搜索?下面本篇文章就来给大家介绍在PHP中如何使用迭代和递归方式来实现二进制搜索,希望对大家有所帮助. 方法一: ...

  4. 5.IDA-文本搜索、二进制搜索(16进制字节序列)、替换16进制

    1.文本搜索 IDA文本搜索相当于对反汇编列表窗口进行子字符串搜索.通过Search▶Text(热键:ALT+T)命令启动文本搜索 选择Find all occurences(查找所有结果),IDA将 ...

  5. 递归算法和迭代算法_Java中没有递归的二进制搜索–迭代算法

    递归算法和迭代算法 这周的任务是用Java实现二进制搜索 ,您需要编写迭代和递归二进制搜索算法 . 在计算机科学中,二进制搜索或半间隔搜索是一种分而治之的算法,用于在排序数组中定位项目的位置. 二进制 ...

  6. Java中没有递归的二进制搜索–迭代算法

    本周的任务是用Java实现二进制搜索 ,您需要编写迭代和递归二进制搜索算法 . 在计算机科学中,二进制搜索或半间隔搜索是一种分而治之的算法,用于定位项目在排序数组中的位置. 二进制搜索通过将输入值与数 ...

  7. 二进制搜索算法_二进制搜索的一个扭曲故事

    二进制搜索算法 by Divya Godayal 通过Divya Godayal 二进制搜索的一个扭曲故事 (A twisted tale of Binary Search) Awesome. Tha ...

  8. 七日掌握设计配色基础_掌握正确的基础知识:如何设计网站的导航,搜索和首页...

    七日掌握设计配色基础 by Anant Jain 通过Anant Jain 掌握正确的基础知识:如何设计网站的导航,搜索和首页 (Get the basics right: how to design ...

  9. 二进制 |_元二进制搜索| 单边二元搜索

    二进制 & | Meta Binary Search is a one-sided binary search where we work on the index using bit man ...

最新文章

  1. 系统超时或者服务器会话丢失,第 17 章 配置 Web 服务器(Undertow)
  2. 链表之打印两个有序链表的公共部分
  3. ZooKeeper管理分布式环境中的数据
  4. kaggle实战笔记_1.数据处理
  5. Ambari--服务管理
  6. html 多标签页,html更多标签
  7. Ruby 学习笔记6
  8. 中兴echat_中兴高达震撼发布12款新品 助力专网行业融合发展
  9. 心法利器[58] | 从长尾问题到以搜代分的机理探索
  10. php openssl 生成der,openssl asn.1 生成DER文件,把DER文件转换成内部数据结构
  11. c语言实参和形参占用存储单元_c语言的形参是否占存储单元
  12. html 英文逗号,英语写作中不可小觑的五大错误 逗号别乱用
  13. pygame战棋游戏制作之战棋回合切换(五)
  14. 超详细HttpClient加载安全证书post请求访问https示例
  15. Neural Style Transfer: A Review
  16. 华南理工计算机应用在线答题,华南理工大学计算机应用基础随堂练习题目及答案...
  17. LeetCode——第121题:买股票的最佳时机
  18. 轻松搭建影音服务器(转)
  19. 海信IP103H-S905L3-B-5621DS安卓9.0线刷包(内蒙古移动)
  20. 学计算机专业买什么牌子的电脑好,学习平板电脑什么牌子好【图解】

热门文章

  1. jdk jre jvm三者之间的关系
  2. 028_SpringBoot整合Redis
  3. php图片等比例压缩,php实现图片上传并等比例压缩
  4. 用计算机语言编写的完成一定功能,C+的+预备知识.ppt
  5. 计算机主机清理步骤,怎么清理主机灰尘 清理灰尘教程
  6. mysql什么格式转换_MySQL日期格式转换
  7. activexobject对象不能创建_【设计模式】建造者模式:你创建对象的方式有它丝滑吗?...
  8. Thread 与Runnable区别详解
  9. View类的xml属性和相关方法说明
  10. 第六章 ORacle权限设置、schema、通过profile 限制用户恶意登录、通过profile限制使用期限