算法设计与分析----二分搜索(递归)
二分搜索有很多写法,在算法分析与设计中,二分搜索是在递归分治这一章讲到的,所以用递归实现一下。
二分搜索其实很容易理解,设想一根从北京到上海的电线坏掉了,但是不知道是从哪里坏的,要怎样才能使用最少的步骤快速找到问题呢,那就是二分,先到北京与上海的中间位置,我们就称中点吧,测试一下电线,如果是北京到中点有电,那么就说明坏的位置位于上海到中点之间,我们再找到上海到中点的中点,依次类推,很快就能找到问题所在,这种思想就是二分搜索思想。这样会使查找次数指数幂下降,但是前提是待查找的数组是有序的。
这里是递归的版本
#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");
}
算法设计与分析----二分搜索(递归)相关推荐
- 【算法设计与分析】递归与分治 | 复习笔记
文章目录 算法总体思想 递归的概念 定义 n的阶乘 Fibonacci数列 Ackerman函数 排列问题 整数划分问题 Hanoi塔问题 递归小结 分治法的适用条件 分治法的基本步骤 分治法的复杂性 ...
- 计算机算法设计与分析之----- 递归与分治策略
递归与分治策略 [Master定理] 快速排序 优化 逆序对(归并算法) 火柴排队[NOIP2013 提高组] 集合求和 方法一: 递归 (2^n ) 方法二: 组合数学知识 [HNOI2008]越狱 ...
- 算法设计与分析 暴力递归
暴力递归 概述 题目一:汉诺塔问题 题目二:字符串的全部子序列问题 题目三:字符串的全排列问题(分支限界) 题目四:拿纸牌比最大问题 题目五:递归逆序栈 题目六:数字与字符串的转化问题 题目七:重量和 ...
- 【算法设计与分析】经典常考三十三道例题AC代码
❥小虾目前大三,我校在大一下开设<数据结构>这门课,大二上开了<算法设计与分析>这门课,很庆幸这两门课的上机考试总成绩一门100,一门99,最后总分也都90+.下文会给出机试的 ...
- 循环赛日程表非递归Java_王晓东《算法设计与分析》课件.ppt
<王晓东<算法设计与分析>课件.ppt>由会员分享,可在线阅读,更多相关<王晓东<算法设计与分析>课件.ppt(356页珍藏版)>请在人人文库网上搜索. ...
- 算法设计与分析——递归与分治策略——全排列
算法设计与分析--递归与分治策略--全排列 全排列问题的解决是通过分治与递归思想来解决的 首先判断是否递归到了最后一位,如果递归到了最后一位,则输出他当前的全排列序列. 如果没有到达最后一位,则循环的 ...
- 算法设计与分析——全排列问题算法分析(递归调用分析图)
(目前网上最易理解递归调用的分析过程--递归调用分析图) 全排列: 从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列.当m=n时所有的排列情况 ...
- 计算机算法设计与分析教学大纲,《算法设计与分析》教学大纲
<<算法设计与分析>教学大纲>由会员分享,可在线阅读,更多相关<<算法设计与分析>教学大纲(3页珍藏版)>请在人人文库网上搜索. 1.课程编号:&quo ...
- 算法设计与分析(python版)-作业一
参考教材:算法设计与分析(Python版) 作者:王秋芬 1 . 容易 (4分)2 n=O(100n ^2) 错误 2 . 容易 (3分)10=θ(log10) 正确 3 . 容易 ( ...
最新文章
- 浙江财经大学java试卷_2020年浙江财经大学社会保障考研真题试卷及试题答案,管理学考研试题下载...
- 精彩回顾 | Serverless Developer Meetup 12.04 深圳站
- tensorflow tf.train.Saver.restore() (用于下次训练时恢复模型)
- JSP第十四次课:JSP项目开发高级操作2---在线编辑器应用及前台首页显示商品
- Spring Data Redis:Sentinel的高可用性
- 使用Spring Security 5.0和OIDC轻松构建身份验证
- c++11 你需要知道这些就够了
- 属于程序员的等级,看看你是哪个级别?
- 从第一范式到第二范式所做的操作是_数据库设计三大范式
- CVTE 2017 秋季校招一面(C++ 后台)
- Scala 深入浅出实战经典 第9讲:Scala的内部类实战详解
- 老照片免费修复软件有哪些?一键智能修复老照片工具推荐给你
- vue数据层思路_vue层级关系的数据管理
- 蚂蚁支付宝小程序开发从零开始[含demo]
- JM8.5中的高精度象素运动估计
- 国税局验证码识别 | 不讲武德篇
- 码市coding不能下载
- New setting keys are not allowed; use getters/setters in relevant manager class [NoSettingsProvider]
- [Python3]pandas.merge用法详解
- Java8-----系统复习及扫盲(3)--函数式编程学习
热门文章
- 自制密码管理器 —— 使用python、RSA加密文件
- Flutter Android 打包保姆式全流程 2023 版
- 【c++】2023杭州月薪个税计算(chatGPT帮忙加注释)
- 免费的午餐?乌托邦是否真的存在?自由软件和开源软件
- 思维突破,从资源入手,从大环境给的力入手
- CSDN超级实习生,五步助力高薪offer
- 计算机应用技术适合女孩学吗,计算机应用技术适合女生学吗
- 1024全方位防脱发攻略?做发量和代码最刚的程序员
- java 注解值_java 注解默认值操作
- ubuntu16.04下安装GTX1080TI显卡驱动+安装CUDA+Cudnn+anaconda+GPU版tensorflow