二分搜索有很多写法,在算法分析与设计中,二分搜索是在递归分治这一章讲到的,所以用递归实现一下。
二分搜索其实很容易理解,设想一根从北京到上海的电线坏掉了,但是不知道是从哪里坏的,要怎样才能使用最少的步骤快速找到问题呢,那就是二分,先到北京与上海的中间位置,我们就称中点吧,测试一下电线,如果是北京到中点有电,那么就说明坏的位置位于上海到中点之间,我们再找到上海到中点的中点,依次类推,很快就能找到问题所在,这种思想就是二分搜索思想。这样会使查找次数指数幂下降,但是前提是待查找的数组是有序的。
这里是递归的版本

#include<bits/stdc++.h>
using namespace std;
int f = 0;
int a[10] = {1,2,3,4,5,6,7,8,9,10};
int find(int x,int l,int r)
{if(l > r)return 0;int now = (l+r)/2;if(a[now] == x)f = 1;else if(a[now] > x)find(x,l,now-1);elsefind(x,now+1,r);
}
int main()
{f = 0;int i;scanf("%d",&i);find(i,0,9);puts(f==1?"yes":"no");
}

算法设计与分析----二分搜索(递归)相关推荐

  1. 【算法设计与分析】递归与分治 | 复习笔记

    文章目录 算法总体思想 递归的概念 定义 n的阶乘 Fibonacci数列 Ackerman函数 排列问题 整数划分问题 Hanoi塔问题 递归小结 分治法的适用条件 分治法的基本步骤 分治法的复杂性 ...

  2. 计算机算法设计与分析之----- 递归与分治策略

    递归与分治策略 [Master定理] 快速排序 优化 逆序对(归并算法) 火柴排队[NOIP2013 提高组] 集合求和 方法一: 递归 (2^n ) 方法二: 组合数学知识 [HNOI2008]越狱 ...

  3. 算法设计与分析 暴力递归

    暴力递归 概述 题目一:汉诺塔问题 题目二:字符串的全部子序列问题 题目三:字符串的全排列问题(分支限界) 题目四:拿纸牌比最大问题 题目五:递归逆序栈 题目六:数字与字符串的转化问题 题目七:重量和 ...

  4. 【算法设计与分析】经典常考三十三道例题AC代码

    ❥小虾目前大三,我校在大一下开设<数据结构>这门课,大二上开了<算法设计与分析>这门课,很庆幸这两门课的上机考试总成绩一门100,一门99,最后总分也都90+.下文会给出机试的 ...

  5. 循环赛日程表非递归Java_王晓东《算法设计与分析》课件.ppt

    <王晓东<算法设计与分析>课件.ppt>由会员分享,可在线阅读,更多相关<王晓东<算法设计与分析>课件.ppt(356页珍藏版)>请在人人文库网上搜索. ...

  6. 算法设计与分析——递归与分治策略——全排列

    算法设计与分析--递归与分治策略--全排列 全排列问题的解决是通过分治与递归思想来解决的 首先判断是否递归到了最后一位,如果递归到了最后一位,则输出他当前的全排列序列. 如果没有到达最后一位,则循环的 ...

  7. 算法设计与分析——全排列问题算法分析(递归调用分析图)

    (目前网上最易理解递归调用的分析过程--递归调用分析图) 全排列: 从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列.当m=n时所有的排列情况 ...

  8. 计算机算法设计与分析教学大纲,《算法设计与分析》教学大纲

    <<算法设计与分析>教学大纲>由会员分享,可在线阅读,更多相关<<算法设计与分析>教学大纲(3页珍藏版)>请在人人文库网上搜索. 1.课程编号:&quo ...

  9. 算法设计与分析(python版)-作业一

    参考教材:算法设计与分析(Python版)         作者:王秋芬 1 . 容易 (4分)2 n=O(100n ^2) 错误 2 . 容易 (3分)10=θ(log10) 正确 3 . 容易 ( ...

最新文章

  1. 浙江财经大学java试卷_2020年浙江财经大学社会保障考研真题试卷及试题答案,管理学考研试题下载...
  2. 精彩回顾 | Serverless Developer Meetup 12.04 深圳站
  3. tensorflow tf.train.Saver.restore() (用于下次训练时恢复模型)
  4. JSP第十四次课:JSP项目开发高级操作2---在线编辑器应用及前台首页显示商品
  5. Spring Data Redis:Sentinel的高可用性
  6. 使用Spring Security 5.0和OIDC轻松构建身份验证
  7. c++11 你需要知道这些就够了
  8. 属于程序员的等级,看看你是哪个级别?
  9. 从第一范式到第二范式所做的操作是_数据库设计三大范式
  10. CVTE 2017 秋季校招一面(C++ 后台)
  11. Scala 深入浅出实战经典 第9讲:Scala的内部类实战详解
  12. 老照片免费修复软件有哪些?一键智能修复老照片工具推荐给你
  13. vue数据层思路_vue层级关系的数据管理
  14. 蚂蚁支付宝小程序开发从零开始[含demo]
  15. JM8.5中的高精度象素运动估计
  16. 国税局验证码识别 | 不讲武德篇
  17. 码市coding不能下载
  18. New setting keys are not allowed; use getters/setters in relevant manager class [NoSettingsProvider]
  19. [Python3]pandas.merge用法详解
  20. Java8-----系统复习及扫盲(3)--函数式编程学习

热门文章

  1. 自制密码管理器 —— 使用python、RSA加密文件
  2. Flutter Android 打包保姆式全流程 2023 版
  3. 【c++】2023杭州月薪个税计算(chatGPT帮忙加注释)
  4. 免费的午餐?乌托邦是否真的存在?自由软件和开源软件
  5. 思维突破,从资源入手,从大环境给的力入手
  6. CSDN超级实习生,五步助力高薪offer
  7. 计算机应用技术适合女孩学吗,计算机应用技术适合女生学吗
  8. 1024全方位防脱发攻略?做发量和代码最刚的程序员
  9. java 注解值_java 注解默认值操作
  10. ubuntu16.04下安装GTX1080TI显卡驱动+安装CUDA+Cudnn+anaconda+GPU版tensorflow