折半查找

蓝桥杯 基础练习(五)查找整数 C语言 查找整数 C语言 问题描述 给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。 输入格式 第一行包含一个整数n。 第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。 第三行包含一个整数a,为待查找的数。 输出格式 如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。 样例输入 6 1 9 4 8 3 9 9 样例输出 2 数据规模与... 阅读详情

给定 N 个整数和 K个待查找的整数 M_1, M_2, …, M_K 。如果待查找的整数在给定的 N 个整数中,请输出待查找的整数是数组中第几个元素(从 1 开始计算,第一个元素计 1 而不是 0);如果待查找的整数不在给定的 N 个整数中,则输出 0。

样例输入
6 4
1 2 4 6 7 8
9 1 5 2
样例输出
0 1 0 2

#include <stdio.h>

int main() {
    int n;//N个整数
    int k;//待查找的K个整数
    int numbers[1000001];
    int m[1000001];
    int i,j, low, high;

    // 反复读入数字和查找数字的数量
    while (scanf("%d%d", &n, &k) != EOF) {
        
        // 读入给定的数字
        for (i = 0; i < n; i++) {
            scanf("%d", &numbers[i]);
        }

        for (j = 0; j < k; j++) {
            // 读入待查找的数字,
            scanf("%d", &m[j]);

            // 请在下面完成查找读入数字的功能
            
        }
        for(j = 0; j < k; j++){
            low = 0; 
            high = i-1;
            while(low <= high){
                int mid = (low+high)/2;
                if(numbers[mid] == m[j]){
                    printf("%d", mid+1);
                    break;
                }
                if(numbers[mid] < m[j]){
                    low = mid+1;
                }
                else{
                    high = mid-1;
                }
            }
            if(low>high)
                printf("0");
            if(j != k-1)
                printf(" ");
        }

    }
    return 0;
}
递归的折半查找算法 问题一:递归的折半查找算法 注意:折半查找有一个条件,数据必须是有顺序性的,不然折半查找毫无意义; 原问题:有一数组A[10],里面存放了十个整数,顺序递增。任意输入一个n(位于数组里外均可),如果n数与数组,则显示n位于数组中的位置,如果n不属于数组,则显示错误;要求用递归的方法实现折半查找; 扩展:适用于输入所有顺序递增数据实现折半查找。 实验代码如下: #include &amp;lt;stdio.... 阅读详情

相关推荐

【数据结构】折半查找

主要内容 基本概念 折半查找(Binary Search) 基本概念 在介绍查找算法前我们先重温几个重要概念: 1)数据:客观事物的符号表示,是所有能输入到计算机中,并能被计算机程序处理的符号的总称。如数学计算中用到的整数和实数,文本编辑中用到的字符串,多媒体程序处理的图形、图像、声音及动画等通过特殊编码定义后的数据。 2)数据元素:数据的基本单位,在计算机中通常作为一个整体进行考...

春雪阁 2411

PTA习题集—团体程序设计天梯赛L1-008 求整数段和

import java.util.Scanner; public class Main { /** * @author jadexu * 给定两个整数A和B,输出从A到B的所有整数以及这些数的和。 * 输入格式: * 输入在一行中给出2个整数A和B,其中−100≤A≤B≤100,其间以空格分隔。 * 输出格式: * 首先顺序输出从A到B的所有整数,每5个数字占一行,每个数字占5个字符宽度,向右对齐。 * 最后在一行中按Sum .

JadeXu07的博客 299

ECU-TEST笔记&使用技巧01

说明 1)所述均基于如下环境:ECU-TEST 8.0、Win10系统、NI Veristand 2018(HIL测试)。不排除因为版本及软件环境问题,所述方法不奏效或有更好的方法,欢迎交流,一起提高。 2)本博客以问答形式进行,所述问题均来自于实际测试(包括MIL、HIL测试)遇到的问题及需求,目的是提高测试效率和自动化测试序列的可维护性。 3)本博客尽量从测试方法及ECU-TEST原...

Eigrl的博客 1万+

C语言中折半查找法(二分法)的实现

折半查找法也叫做二分查找,顾名思义,就是把数据分成两半,再判断所查找的key在哪一半中,再重复上述步骤知道找到目标key; 注意:(咳咳,敲黑板)折半查找法仅适用于对已有顺序的数组、数据进行操作!!! 很显然,折半查找法相对于其他查找方法例如顺序查找法效率要高很多; 下面我们来实际操作一下,了解二分查找的奥义。 例如:要在数组arr[]={8,7,9,6,4,1,2,5,3,10};中查找key=...

顾南怀 6万+

长上下文技术的底层逻辑:Attention、压缩、缓存与跨页推理

如果把模型的参数视为“固化智能”,动态智能(Dynamic Intelligence)——模型不必依赖训练时的记忆,而是可以随时调用外部信息。这一点正在改变大模型的范式:Prompt 不再是输入,而是“操作系统事件”文档不再是知识,而是“模型的临时记忆”模型不再是一段神经网络,而是一个“具备阅读循环的推理引擎”当我们把上下文从 128K 拉到百万级,我们做的不是扩容,而是让模型第一次拥有阅读、回溯、定位、跨页分析的能力。这是一种新的智能。

aifs2025的博客 997

GPU架构-SIMT

本文深度剖析了GPU的SIMT架构,从硬件实现层面解析其与SIMD的本质差异。SIMT通过将32个线程捆绑为warp执行,在标量编程模型下实现数据并行。文章对比了SIMD和SIMT的执行模型、分支处理机制及存储层次,指出SIMT是对SIMD的虚拟化抽象。重点分析了Volta架构引入的独立线程调度技术,以及访存合并对性能的关键影响。通过定量数据展示了各代GPU架构的寄存器文件规模和线程调度机制,为开发者优化GPU程序提供了硬件层面的理论基础。

技术引领业务创新 973

折半查找算法

 include #include int bin_search(int arr[],int key,int sz) { int left=0,right=sz-1; while(left { int mid=(right+left)>>1;

每天学习一点点,成长一小步 1127

Ansys-结构动力学分析-圆柱斜齿轮模态分析学习心得

模态分析的步骤基本一直,不同点在于选择什么单元类型,模型,节点约束等 圆柱斜齿轮模态分析的难点在于圆柱斜齿轮的模型建立,和所要约束的节点的选择。 用命令流方法建立齿轮模型效率较高,当然,在ansys里建立复杂的模型实在不敢恭维,对于自下而上建模,需要知道每个关键点的坐标位置。下图是创建圆柱斜齿轮模型的命令流方式。 模型不同使用的数据也就不同了。 对于施加约束的问题这就必须要熟悉select e...

weixin_45385183的博客 1831

数据结构之折半查找

折半查找又称二分查找,它仅仅适用于有序的顺表。

chuyu的博客 3万+

OpenEuler22.04 快速部署Docker:华为云镜像源配置指南

本文详细介绍了在OpenEuler 22.04系统上快速部署Docker的完整流程。针对系统默认源版本老旧的问题,重点讲解了如何配置华为云镜像源以加速安装,并涵盖Docker引擎、Docker Compose的安装、服务启动验证、权限配置、镜像加速等核心步骤与常见问题排查,帮助用户高效搭建稳定的容器化开发环境。

http9protocoller的博客 174

100:vue+cesium: 加载glb文件,随机位置加载2000架飞机

本示例在 Vue + cesium 项目中随机位置加载2000架飞机,飞机是glb文件,每个大小为571kb。这个示例属于性能优化的范畴内,通常如果用entity加载glb只能显示几个飞机,这里采用primitive的方法来加载。直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果.

大剑师兰特的GIS世界 706

【查找】折半查找

折半查找 如果从文件中读取的数据记录的关键字是有序排列的(递增的或是递减的),则可以用一种更有效率的查找方法来查找文件中的记录,这就是折半查找法,又称为二分搜索。 折半查找的基本思想:减少查找序列的长度,分而治之地进行关键字的查找。他的查找过程是:先确定待查找记录的所在的范围,然后逐渐缩小查找的范围,直至找到该记录为止(也可能查找失败)。例如文件记录的关键字序列为:     (1,3,5,7,9,...

秃头仔仔-安凯雯的博客 4万+

Agisoft Metashape 基于RTK技术的无人机航测免像控技术流程

利用无人机进行航空摄影测量,其使用方便、快速获得成果,已经是测绘行业外业生产的主要方式。RTK定位系统的出现,其厘米级的定位系统,使得航测无人机在作业时,能够准确获取拍照时的GPS位置,能够大量减少像控点,即使不使用像控点也能满足规范对精度的要求。可以有效解决特殊地形(如山川、峡谷、河流、沼泽、水库等)外业人员很难布设像控点的情况。

penglu366366的博客 2188

C语言——折半查找法

查找数据位序——折半查找法

m0_69438595的博客 3万+

北斗导航 | 接收机自主完好性监测与神经网络结合的技术路径、应用场景及研究进展

2] 许承东, 黄国限, 钟贤发, 等. 一种用于神经网络RAIM的故障卫星识别方法[P]. 中国专利: CN117192573A, 2023-12-08.随着6G通信与低轨卫星星座的融合发展,神经网络RAIM有望在2025-2030年实现从辅助技术向主导技术的跨越,成为智能导航系统的核心支撑技术。该架构采用改进型BP神经网络实现非线性映射,在GPS/北斗双模系统中实现98.7%的故障识别率[2]。注:测试条件为GPS/北斗双模系统,12颗可见卫星,含3颗故障卫星的复合场景。

尘世冰封的专栏 482

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

折半查找判定树——(快速判断某棵树是否为折半查找判定树)

折半查找        也被称作二分查找,即将需要查找的元素与数组中间的元素进行比较;若比中间的元素小,则再与前子表的中间元素进行比较,以此类推直至查找到所需查找元素,或者所需查找元素不在此表中。 折半查找判定树(此树必为平衡树)        即由折半查找过程中所产生的树,首尾除以二取整。 下面主要介绍如何快速判断树是否为折半查找判定树   &nb

叫我蘑菇先生 2万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

折半查找——对比次数

【问题描述】 折半查找的基本思想为: (1)在有序表中,取中间记录作为比较对象,若给定值与中间记录的关键码相等,则查找成功; (2)若给定值小于中间记录的关键码,则在中间记录的左半区继续查找; (3)若给定值大于中间记录的关键码,则在中间记录的右半区继续查找; (4)不断重复上述过程,直到查找成功或失败。 已知一个顺序表中的数据都是整型且有序的,给出一个待查找值,请设计算法计算出采用折半查找该数值...

weixin_44034024的博客 1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

实现折半查找的算法

/** *    实验题目: *        实现折半查找的算法 *    实验目的: *        领会折半查找的过程和算法设计 *    实验内容: *        设计程序,输出在顺序表(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)中采用 *    折半查找方法查找关键字9的过程 * */ #include &lt;stdio.h&gt; #define MAX_...

xiezhi123456的博客 6762

经典算法之折半查找

经典算法之折半查找

weixin_68153081的博客 7367

折半查找法

折半查找   折半查找,也称二分查找,在某些情况下相比于顺序查找,使用折半查找算法的效率更高。但是该算法的使用的前提是静态查找表中的数据必须是有序的。例如,在{2,10,16,19,23,44,56,58,69,80,99} 这个查找表使用折半查找算法查找数据之前,需要首先对该表中的数据按照所查的关键字(从小到大)进行排序:{2,10,16,19,23,44,56,58,69,80,99}。   ...

duan179的博客 2万+

二维数组的折半查找

二维数组的折半查找

2301_81871776的博客 1818

折半查找python实现

折半查找python实现 折半查找是常用的查找方法(在按大小顺序排列中的数组或者列表中更是如此),与传统的顺序查找相比,它查找的效率更高。 算法思想 算法的思想很直接,也就是先把第一个和最后一个作为作为low和high的值,然后将要查找的数字与这两个位置对应的数值进行比较(当然,为了保证算法稳健性,先判断要查找的数字在不在数组或列表中,如果不存在则提示重新输入)。 算法操作步骤 设给定的数组为A,...

如切如磋 9308

折半查找判定树

具有n个结点的折半查找树的高度为 给定一棵树,该树的ASLsucc=(1+22+34+4*4)/11=33/11=3

weixin_45655152的博客 5645
上一篇: 乘法表
下一篇: 蒜头爬楼梯
Lotus_AI
博客等级 码龄10年 14粉丝 17原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值