PTA 6-10 二分查找

pta7-5 利用二分查找搜寻所有待查找数据 利用二分法在一个有N(N≤20)个元素的有序数列中查找指定值y。找到y后,先输出查找次数,再输出其在数组中对应的下标。若数列中存在多个y,将所有y的位置按下标序号顺序输出;否则输出“not found”. 阅读详情
PTA 6-10 二分查找 (20分)

题目链接 —>link
本题要求实现二分查找算法。

函数结构定义

Position BinarySearch( List L, ElementType X );

其中 List 结构定义如下:

typedef int Position;
typedef struct LNode *List;
struct LNode {
    ElementType Data[MAXSIZE];
    Position Last; /* 保存线性表中最后一个元素的位置 */
};

L 是用户传入的一个线性表,其中 Elementype 元素可以通过>,==,<进行比较,并且题目保证传入的数据是递增有序的。函数 BinarySearch 要查找 X 在 Data 中的位置,既数组下标(注意:元素从下标1开始存储)。找到即返回下标,否则返回一个特殊的失败标记 NotFound 。

裁判测试程序样例:

#include <stdio.h>
#include <stdlib.h>

#define MAXSIZE 10
#define NotFound 0
typedef int ElementType;

typedef int Position;
typedef struct LNode *List;
struct LNode {
    ElementType Data[MAXSIZE];
    Position Last; /* 保存线性表中最后一个元素的位置 */
};

List ReadInput(); /* 裁判实现,细节不表。元素从下标1开始存储 */
Position BinarySearch( List L, ElementType X );

int main()
{
    List L;
    ElementType X;
    Position P;

    L = ReadInput();
    scanf("%d", &X);
    P = BinarySearch( L, X );
    printf("%d\n", P);

    return 0;
}

/* 你的代码将被嵌在这里 */
输入样例1:
5
12 31 55 89 101
31
输出样例1:
2
输入样例2:
3
26 78 233
31
输出样例2:
0

题解:

Position BinarySearch( List L, ElementType X ){
    int left=1;   
    int right=L->Last;
    int mid=(left+right)/2;
    while(left<=right){
        if(X>L->Data[mid]){
            left=mid+1;
        }
        else if(X<L->Data[mid]){
            right=mid-1;
        }
        else{
            return mid;
        }
        mid=(left+right)/2;
    }
   return NotFound;
}
算法训练——二分查找(Binary Search) 题目描述 利用二分查找找出所给出的数在数组中的下标 输入格式: 第一行输入n和m表示数组有n个数据,m表示要对m个数进行查找 输出格式: 所有输出在一行完成,行末没有多余空格和多余回车。 输入样例: 5 5 1 2 3 4 5 1 2 3 4 5 输出样例 0 1 2 3 4 重点:二分法的应用 ※注意:所查的表一定是有序排列 代码如下: #include <bits/stdc++.h> using namespace std; int num[100000]; //防止输入数组数据过 阅读详情

相关推荐

二分查找在PTA 6-10题中的实战应用:常见错误与调试技巧

本文深入探讨了二分查找在PTA 6-10题中的实战应用,详细分析了常见错误类型如边界条件处理不当、整数溢出隐患等,并提供了系统化的调试技巧和优化建议。通过真实案例和代码示例,帮助读者掌握二分查找的核心逻辑与调试方法,提升在PTA平台上的解题效率。

weixin_30872157的博客 405

VmatrixOJ--[H 1003] 小壕的礼物

Description 小壕是个慷慨的孩子,他喜欢收集礼物以及送礼物给别人,而且他有一个很深的口袋,可以不断的放礼物进去以及从口袋里掏出礼物,他的口袋遵从一个栈(stack)的特性:后进先出。即当前最后进入他口袋的礼物在口袋的最上层,在他掏出礼物送人的时候将最先被拿出来。 例如他收集了编号分别为为1,2,3的礼物依次放进自己口袋,然后他送出礼物的顺序则是按照3,2,1的次序。(小壕每次送出礼物...

怡红院 4495

PTA-6-10 二分查找 (20分)-C语言

本题要求实现二分查找算法。 函数接口定义: Position BinarySearch( List L, ElementType X ); 其中List结构定义如下: typedef int Position; typedef struct LNode *List; struct LNode { ElementType Data[MAXSIZE]; Position Last; /* 保存线性表中最后一个元素的位置 */ }; L是用户传入的一个线性表,其中ElementTy

Alexling0的博客 918

VmatrixOJ--IP and QQ

Descrption An ip can login several qqs, and a qq can be logined by several ips. Your task is to find which qqs have been logined by the ip and which ips have logined the qq. output format : qq ==&g...

怡红院 5381

基于FPGA的工业相机项目大赏1——cmos线阵相机

●CMOS CL0402 作为图像传感芯片,曝光后产生一定格式的图像数据;●FPGA ZYNQ7020 作为主控芯片负责cmos驱动控制、图像像素的采集、cmos寄存器的配置、cameralink协议的实现、上位机串口通信的实现;●Cameralink端子实现图像数据的高速串行发送,将数据传送至采集卡PC端。系统工作流程如下: FPGA 上电加载配置程序,计算机通过异步串口向 FPGA 发送控制信息,FPGA对接收的控制信息进行分析判断。

weixin_41895751的博客 6400

WKWebView 白屏问题,WKWebView request body丢失问题

1,WKWebView 白屏问题 WKWebView 自诩拥有更快的加载速度,更低的内存占用,但实际上 WKWebView 是一个多进程组件,Network Loading 以及 UI Rendering 在其它进程中执行。初次适配 WKWebView 的时候,我们也惊讶于打开 WKWebView 后,App 进程内存消耗反而大幅下降,但是仔细观察会发现,Other Process 的内存占用会...

weixin_37543822的博客 736

链表水题一道sicily 1934.移动小球 -- 线性结构,链表,水题

题目描述 你有一些小球,从左到右依次编号为1,2,3,...,n. 你可以执行两种指令(1或者2)。其中, 1 X Y表示把小球X移动到小球Y的左边, 2 X Y表示把小球X移动到小球Y右边。 指令保证合法,即X不等于Y。 例如,初始状态1,2,3,4,5,6的小球执行1 1 4后,小球1被移动到小球4的左边,即2,3,1,4,5,6。如果再执行2 3 5,结点3将会移到5的右边,即2,1,

奋斗青年的专栏 906

模仿学习(Imitation Learning)概述

什么是模仿学习呢?简单来说,模仿学习(Imitation Learning),就是要训练机器能够复制人类的连续动作,进而达到模仿的目的。其实,Imitation Learning的实用性很高,假设今天有一个训练场景,你不知道该怎么定奖励值(reward),但是你可以收集到专家的示范数据(expert demonstration data),你就可以考虑用Imitation Learning这个方法。因此,模仿学习也被寄予很高的期待,成为下一代强人工智能的关键技术。......

qq_22749225的博客 2万+

PTA6-10 二分查找 (20分)

PTA6-10 二分查找 (20分) 本题要求实现二分查找算法。 函数接口定义: Position BinarySearch( List L, ElementType X ); 其中list结构定义如下: typedef int Position; typedef struct LNode *List; struct LNode { ElementType Data[MAXSIZE]; ...

Soulstrong的博客 694

数据库:关系运算整理大全(包括关系代数、元组关系演算、域关系演算)

数据库关系运算: 1. 关系代数(基本关系代数、附加关系代数、扩展关系代数) 2. 元组关系演算 3. 域关系演算

ysji's blog 1万+

模拟IC设计笔记:拆解一个经典的时钟占空比校正(DCC)电路模块,从理论到SPICE仿真

本文深入解析了时钟占空比校正(DCC)电路在模拟IC设计中的关键作用,特别是在高速ADC应用中。通过晶体管级拆解,详细介绍了基于电荷泵和积分器的模拟反馈型DCC电路设计,包括占空比检测、误差放大与校正执行单元的实现。文章还提供了SPICE仿真验证方法,确保电路在100MHz时钟下的稳定性和性能。

weixin_33725722的博客 425

二分查找算法原理与PTA 6-10题实现详解

二分查找是计算机科学中的经典查找算法,基于有序数组实现O(log n)时间复杂度的快速搜索。其核心原理是通过不断将搜索范围对半分割,大幅提升查找效率。在算法设计与数据结构领域,二分查找体现了分治策略的典型应用,是理解高效搜索算法的基础。实际工程中,该算法广泛应用于数据库索引、版本控制等场景。针对PTA编程练习平台的6-10题,需要特别注意边界条件处理,如循环终止条件和指针更新规则。通过标准化的C语言实现,结合测试用例验证,可以掌握二分查找在有序数组中的精确应用与变体实现技巧。

weixin_30905981的博客 498

LD分析实战:基于Plink和R的连锁不平衡计算与可视化全流程

本文详细介绍了基于Plink和R的连锁不平衡(LD)分析全流程,包括基因型数据预处理、LD计算参数设置及结果可视化技巧。通过实战案例解析PLINK文件格式转换、r²值计算关键参数,并展示如何使用ggplot2绘制高质量LD热图,帮助研究人员高效完成基因组关联分析。

weixin_29074295的博客 319

(PTA数据结构与算法)6-10 二分查找——注意PTA的返回值

6-10二分查找(20分) 本题要求实现二分查找算法。 函数接口定义: Position BinarySearch( List L, ElementType X ); 其中List结构定义如下: typedef int Position; typedef struct LNode *List; struct LNode { ElementType Data[MAXSI...

渣渣的博客 848

运维系列【仅供参考】:RustDesk部署疑难解答

RustDesk部署疑难解答

weixin_54626591的博客 279

车载以太网:PHY(物理层)介绍

本文以TJA1101芯片为实例介绍了车载以太网PHY(物理层)组成。

kevin1499的博客 6231

PTA-6-10 二分查找(20 分)

犯了一个错误:忽略了mid要不断2分的,mid = start+end,写在了循环外面。 Position BinarySearch(List L,ElementType X) { if(L ==NULL) return NotFound; int start = 1,end = L-&gt;Last; int mid; while(start&lt;=end) { ...

努力努力再努力 8307

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

pta6-10 二分查找 (20分)

本题要求实现二分查找算法。 函数接口定义: Position BinarySearch( List L, ElementType X ); 其中List结构定义如下: typedef int Position; typedef struct LNode *List; struct LNode { ElementType Data[MAXSIZE]; Position Last; /* 保存线性表中最后一个元素的位置 */ }; L是用户传入的一个线性表,其中ElementT

suntingsheng123的专栏 681

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

PTA 数据结构与算法题目集 6-10 二分查找

PTA数据结构与算法题目集个人题解

小猿不是缝合怪的博客 244

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

6-10 二分查找(PTA数据结构与算法题目集)

6-10 二分查找,其中List/* 保存线性表中最后一个元素的位置 */};L是用户传入的一个线性表,其中元素可以通过>、==、

Cosmoshhhyyy的博客 229

[PTA] 数据结构与算法题目集 6-10 二分查找

Position BinarySearch(List L, ElementType X) { int beg = 1; int end = L->Last; while (beg <= end) { int mid = (beg + end) / 2; if (L->Data[mid] == X) ...

Rh's blog 201

PTA 6-10 二分查找 6-11 先序输出叶结点 6-12 二叉搜索树的操作集

6-10 二分查找 题目要求: 本题要求实现二分查找算法。L是用户传入的一个线性表,其中ElementType元素可以通过>、==、<进行比较,并且题目保证传入的数据是递增有序的。函数BinarySearch要查找X在Data中的位置,即数组下标(注意:元素从下标1开始存储)。找到则返回下标,否则返回一个特殊的失败标记NotFound。 代码如下: Position BinarySea...

qq_44494246的博客 686

c++实验使用类模板对数组元素进行查找求和_PTA「6-10 二分查找」

PTA是浙江大学设计类实验辅助教学平台。题目描述:本题要求实现二分查找算法。函数接口定义:Position BinarySearch( List L, ElementType X ); 其中List结构定义如下:typedef int Position; typedef struct LNode *List; struct LNode { ElementType Data[MAXSIZE]...

weixin_30750685的博客 444
上一篇: PTA 6-1单链表逆转
下一篇: PTA 6-5 链式表操作集
广州彭于晏
博客等级 码龄8年 10粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值