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

#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. C#中获取程序当前路径的集中方法
  2. 《精通Unix下C语言编程与项目实践》目录
  3. webstorm中git密码输入错误,重置问题
  4. [BSidesSF2020]haystack
  5. HPU暑期第五次积分赛 - G-迷宫(BFS+最短路径)
  6. 信息系统项目管理师-论文写作基本介绍笔记
  7. hbase中清空整张表的数据
  8. sql drop 简单操作(Mysql)
  9. MouseColor | 颜色获取及转换工具
  10. 想不到,三级缓存是这样解决循环依赖的……
  11. 《Effective C++》 读书笔记之三 资源管理
  12. 高可用Hadoop平台-应用JAR部署
  13. OKHttp源码解析(1)----整体流程
  14. java 引用机制_Java编程开发之浅析Java引用机制
  15. 数字电子技术基础笔记【阎石第六版】 第一章 数字与编码
  16. node.js连接数据库实现注册登录拼接添加到页面 (增删改查)
  17. 计算机音量控制器打不开,Win10系统音量控制打不开的解决方法
  18. Android10闪退无日志,【报Bug】Android10手机白屏闪退
  19. 不离不弃共赴鸿蒙什么意思,鸿蒙是什么意思 “道起鸿蒙”是什么意思,有何典故,语出何处?...
  20. 原来iPhone自带Respring(注销重启桌面)功能

热门文章

  1. html5 小车动画_html5-Animation动画效果
  2. 信噪比:SNR,Es/No,Eb/No的理解
  3. 论文学习:Ziggurat: A tiered File System for Non-Volatile Main Memories and Disks
  4. Excel 公式学习笔记:获取当前文件名
  5. 安全公司发现38款手机预装恶意软件,三星、小米、OPPO等悉数在列
  6. Erlang之父Joe Armstrong去世,他留给程序员两点忠告
  7. 初涉STM32之浅谈时钟使能问题
  8. Oracle rownum函数
  9. Vue事件总线(EventBus)、$on、$emit、$off
  10. 来了!携号转网11月底实现,三大运营商你会考虑哪个?