这期我会做得详细亿点

你玩过猜数游戏吗?

如果答案在1~100之间,你能在10次之间猜出来吗?

cout<<rand()%100-1;
40
--------------------------------
Process exited after 0.532 seconds with return value 0
请按任意键继续. . .

我先猜50:大了

我猜25:小了

我再猜38:小了

我猜44:大了

我猜42:大了

我猜40:对了

你看懂了吗?

实际上就是不停分一半

也就是上期的:

q=(left+right)/2;

可以看看这个:http://cqyc.com:8888/files/algorithm_show.htmlhttp://cqyc.com:8888/files/algorithm_show.html

递归什么的都是次要的,在递归中长这样

return erfenchazhao(l,r+1);

最后,就看看代码吧

#include<bits/stdc++.h>
using namespace std;
long long x[100000];
int efcz(long long s[],long long l,long long r,long long b,long long z)
{if(s[b]==z){return b+1;}if(s[b]>z) return efcz(s,l,b-1,(l+r)/2,z);if(s[b]<z) return efcz(s,b+1,r,(l+r)/2,z);
}
int main()
{long long v,y;cin>>v>>y;for(int l=0;l<v;l++){cin>>x[l];}sort(x,x+v);//这里是升序还是降序看情况cout<<efcz(x,0,v-1,(v-1)/2,y);return 0;
}

二分查找【思路】【递归】相关推荐

  1. 二分查找算法递归和非递归实现

    自己接触和了解过的查找算法总结起来分为3个吧: 1. 静态查找(主要是二分查找,效率较高) 2. 动态查找(二叉查找树) 3. 哈希表 首先来说二分查找吧! 基本思想:假设在一个已经排好序的有序序列( ...

  2. 查找算法之一:二分查找(递归实现)

    二分查找的递归实现 思路分析 代码实现 思路分析 1.确定该序列的中间的下标mid: mid = (left + right)/2: 2.让需要查找的数findVal 与 arr[mid]进行比较: ...

  3. Java实现折半查找(二分查找)的递归和非递归算法

    Java二分查找实现,欢迎大家提出交流意见. /** *名称:BinarySearch *功能:实现了折半查找(二分查找)的递归和非递归算法. *说明: *     1.要求所查找的数组已有序,并且其 ...

  4. JAVA常用算法一:二分查找【递归 or 非递归】

    文章目录 一.Java实现二分查找[递归] 二.Java实现二分查找[非递归] 三.测试 一.Java实现二分查找[递归] //递归使用二分查找public static int binarySear ...

  5. 二分查找非递归方式实现

    思路分析 代码实现 package com.atguigu.binarysearchnorecursion;/*** @创建人 wdl* @创建时间 2021/4/2* @描述*/ public cl ...

  6. Python 二分查找(涉及递归思想)

    二分查找介绍   二分查找(搜索)是一种在有序列表中查找某一特定元素的搜索算法.   首先先查找到目标列表的中间元素,如果中间元素正好是要查找的元素,则返回查找元素的索引下标,搜索结束:如果要查找的元 ...

  7. 二分法:二分查找(递归+非递归)实现

    二分查找又称折半查找,首先,假设表中元素是按升序排列,将 表中间位置的关键字与查找关键字比较: 如果两者相等,则查找成功; 否则利用中间位置将表分成前.后两个子表: 1)如果中间位置的关键字大于查找关 ...

  8. 二分查找(递归和非递归)

    二分算法步骤描述 前提:有序数组中查找关键词所在的位置 ① 首先确定整个查找区间的中间位置 mid = strat+(end-strat)/2 ② 用待查关键字key值与中间位置的关键字值进行比较: ...

  9. python学习-综合练习七(二分查找(递归)、线性查找、插入排序、快速排序、选择排序、冒泡排序、归并排序、堆排序)-实例

    文章目录 二分查找 线性查找 插入排序 快速排序 选择排序 冒泡排序 归并排序 堆排序 推荐代码一 推荐代码二 希尔排序 拓扑排序 说明:本篇博文的知识点大部分来自 Python3 实例 二分查找 二 ...

  10. 算法 - 二分查找(非递归实现二分查找)

    package Algorithm.binarysearchnorecursion;public class BinaaySearchNoRecur {public static void main( ...

最新文章

  1. Mac hive 配置和安装
  2. 流程控制关键字——分支结构
  3. HDU(1856),裸的带权并查集
  4. PHP-fpm 优化问题
  5. 【转载】扫盲概念RPA
  6. Java在程序设计题目中的妙用
  7. 【InnoDB】体系结构
  8. ElasticSearch 7 正式发布!
  9. DropDownList第一个默认值
  10. Jetson Nano 入坑之路 ----(9)C++调用SYN6288语音播报模块
  11. java邮箱格式校验_Java代码实现非正则表达式检验邮箱格式是否合法
  12. 根据起始时间和流逝的时间计算出终止时间(C语言)
  13. 关于Win11家庭版安装Ansys2021R1遇到的问题
  14. RobotStudio 示教器编程:MoveL指令
  15. iOS-[NSAttributedString]设置富文本和计算富文本高度
  16. c语言 按键切换显示屏,51单片机lcd1602按键切屏
  17. virtualbox 不能为虚拟电脑打开一个新任务/VT-x features locked or unavailable in MSR.
  18. Xrm.Utility.openEntityForm 时404.15 maxQueryString 错误 和 长度超过maxQueryStringLength值 错误
  19. 性能测试---搬运自Performance Testing Guidance for Web Applications,作者J.D. Meier, Carlos Farre, Prashant Ban
  20. re模块day17课堂小结

热门文章

  1. idcardweb装入失败_新中新身份证读卡器接口API使用
  2. MyEclipse个性设置 .
  3. VB.net版机房收费系统——结账功能实现(代码部分)
  4. OPA2376AIDGKR
  5. 我最喜欢的科目是计算机英语,我最喜欢的科目英语作文带翻译
  6. python对象不可订阅_python - TypeError:'int'对象不可订阅 - 尝试创建csv文件时 - SO中文参考 - www.soinside.com...
  7. 微信小程序与普通网页开发的区别
  8. 安装oracle过程中卡在45%不动的解决办法
  9. 部门来了个跳槽出来的测试开发,听说是00后,上来一顿操作给我看呆了...
  10. [博客记录页]名博记录页,不定时更新