当前位置: 首页 > news >正文

PTA 查找算法设计 1 线性表折半查找

作者 张鏖烽

单位 湖南工程学院计算机与通信学院

编程实现线性表的折半查找算法函数:

HalfSearch(L,k):在线性表L中折半查找关键字k,查找成功返回其逻辑位序,否则返回0 ,同时输出查找过程中依次与之比较的关键字

注意:顺序表L中的元素是有序的。

函数接口定义:

在这里描述函数接口。例如: int HalfSearch(SqList *L,int k);

其中L为顺序表,k为待查找关键字;

裁判测试程序样例:

在这里给出函数被调用进行测试的例子。例如: #include<stdio.h> #include<malloc.h> #define MaxSize 100 typedef struct{ int data[MaxSize]; int length; }SqList; void InitList(SqList *&L) { L=(SqList *)malloc(sizeof(SqList)); L->length=0; } int HalfSearch(SqList *L,int k);//折半查找算法 int main() { int k,i,n; SqList *L; InitList(L); scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&L->data[i]); L->length=n; scanf("%d",&k); printf("折半查找关键字%d需要依次比较:",k); i=HalfSearch(L,k); if(i==0) printf("\n关键字%d查找失败!",k); else printf("\n关键字%d是线性表中第%d个元素!",k,i); return 0; } /* 请在这里填写答案 */

输入样例:

在这里给出一组输入。例如:

第1行:关键字个数

第2行:关键字序列

第3行:待查找关键字k

9 1 4 6 9 12 23 25 30 45 30

输出样例:

在这里给出相应的输出。例如:

折半查找关键字30需要依次比较:12 25 30 关键字30是线性表中第8个元素!

参考代码:

int HalfSearch(SqList *L,int k) { int low=0,high=L->length-1,mid; while(low<=high){ mid=(low+high)/2; printf("%d ",L->data[mid]); if (L->data[mid]==k) return mid+1; else if (L->data[mid]<k) low=mid+1; else high=mid-1; } return 0; }
http://www.jsqmd.com/news/505478/

相关文章:

  • 呼吸纪元:城市觉醒的肺叶
  • GPT-4 实战指南:如何构建高可用性对话系统与避坑实践
  • AI才不是石头里蹦出来的!一文带你看懂AI的“前世今生“
  • 从零开始抓包分析:使用Wireshark解密蓝牙LMP协议交互过程
  • 2024终极指南:小红书无水印下载工具XHS-Downloader快速上手教程
  • RapidOcr C++ 1.2.3 实战:CPU/GPU自适应推理与HTTP服务部署指南
  • Jenkins升级踩坑实录:从备份到重启的完整避坑指南
  • 2026爬虫流量隐身终极实战:HTTP→TLS→TCP全链路混淆
  • MySQL 8.0.15安装踩坑实录:Visual Studio 2015 x64 Redistributable缺失怎么办?
  • 解锁系统潜能:Windows Cleaner的C盘空间释放之道
  • Tduck填鸭表单Docker部署避坑指南:从零到一键搞定开源表单系统
  • 【大模型】SpringBoot 整合Spring AI 实现多模态大模型应用开发实战指南
  • 存算一体芯片C代码调试实战:如何在30秒内定位内存-计算协同异常?
  • Docker下Skywalking连接ES认证失败的终极解决方案(附详细排错步骤)
  • Python+CV全类型验证码一站式破解
  • 论文写到崩溃?试试“毕业之家+PaperRed”这套组合拳,亲测一周搞定初稿
  • 告别Python依赖:纯Java环境部署YOLOv10模型全指南
  • StructBERT中文情感分类模型多场景效果对比
  • JavaScript基础课程十五、作用域、闭包与 this 深入解析
  • aigc 生成几何图 整理笔记
  • Dify工作流进阶:基于自然语言描述智能匹配并生成API文档(附精准Prompt设计)
  • 从遥感影像到端元丰度图:基于scikit-learn的高光谱解混全流程指南
  • 摆线减速器(SolidWorks)
  • 3步解锁付费内容:Bypass Paywalls Clean插件完全指南
  • 电机工程师必备:9个实用公式搞定电动机选型与故障排查
  • vscode 激活环境失败
  • 开源贡献指南:Magma智能体社区开发入门
  • LCD1602液晶显示屏常见问题排查指南:从对比度调节到字符显示不全的解决方案
  • 智能XML解析助手:高效驾驭复杂文档的开源工具
  • SEO_本地中小企业实用的低成本SEO推广指南