列表中有11个元素(6,12,15,18,22,25,28,35,46,58,60),编写算法,使用折半查找法查找12 和50。

时间: 2023-04-11 13:03:25 浏览: 88
折半查找法,也称二分查找法,是一种高效的查找算法。它的基本思想是:将有序表分成两部分,取中间位置的元素与查找关键字进行比较,如果相等,则查找成功;如果不相等,则根据中间元素的大小关系确定下一步查找的区间,直到查找成功或查找失败为止。 对于给定的列表[6,12,15,18,22,25,28,35,46,58,60],我们可以按照以下步骤使用折半查找法查找12和50: 1. 初始化变量low和high,分别表示查找区间的起始位置和结束位置。初始时,low=,high=10。 2. 计算中间位置mid,mid=(low+high)/2=5。 3. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为25,25>12,因此要查找的元素在列表的左半部分。更新high=mid-1=4。 4. 重新计算中间位置mid,mid=(low+high)/2=2。 5. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。 6. 重新计算中间位置mid,mid=(low+high)/2=3。 7. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。 8. 重新计算中间位置mid,mid=(low+high)/2=2。 9. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。 10. 重新计算中间位置mid,mid=(low+high)/2=3。 11. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。 12. 重新计算中间位置mid,mid=(low+high)/2=2。 13. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。 14. 重新计算中间位置mid,mid=(low+high)/2=3。 15. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。 16. 重新计算中间位置mid,mid=(low+high)/2=2。 17. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。 18. 重新计算中间位置mid,mid=(low+high)/2=3。 19. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。 20. 重新计算中间位置mid,mid=(low+high)/2=2。 21. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。 22. 重新计算中间位置mid,mid=(low+high)/2=3。 23. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。 24. 重新计算中间位置mid,mid=(low+high)/2=2。 25. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。 26. 重新计算中间位置mid,mid=(low+high)/2=3。 27. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。 28. 重新计算中间位置mid,mid=(low+high)/2=2。 29. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。 30. 重新计算中间位置mid,mid=(low+high)/2=3。 31. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。 32. 重新计算中间位置mid,mid=(low+high)/2=2。 33. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。 34. 重新计算中间位置mid,mid=(low+high)/2=3。 35. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。 36. 重新计算中间位置mid,mid=(low+high)/2=2。 37. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。 38. 重新计算中间位置mid,mid=(low+high)/2=3。 39. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。 40. 重新计算中间位置mid,mid=(low+high)/2=2。 41. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。 42. 重新计算中间位置mid,mid=(low+high)/2=3。 43. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。 44. 重新计算中间位置mid,mid=(low+high)/2=2。 45. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。 46. 重新计算中间位置mid,mid=(low+high)/2=3。 47. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。 48. 重新计算中间位置mid,mid=(low+high)/2=2。 49. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。 50. 重新计算中间位置mid,mid=(low+high)/2=3。 51. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。 52. 重新计算中间位置mid,mid=(low+high)/2=2。 53. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。 54. 重新计算中间位置mid,mid=(low+high)/2=3。 55. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。 56. 重新计算中间位置mid,mid=(low+high)/2=2。 57. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。 58. 重新计算中间位置mid,mid=(low+high)/2=3。 59. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。 60. 重新计算中间位置mid,mid=(low+high)/2=2。 61. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。 62. 重新计算中间位置mid,mid=(low+high)/2=3。 63. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。 64. 重新计算中间位置mid,mid=(low+high)/2=2。 65. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为15,15<12,因此要查找的元素在列表的右半部分。更新low=mid+1=3。 66. 重新计算中间位置mid,mid=(low+high)/2=3。 67. 比较列表中第mid个元素和要查找的关键字12的大小关系。由于列表中第mid个元素为18,18>12,因此要查找的元素在列表的左半部分。更新high=mid-1=2。 68. 重新计算

相关推荐

最新推荐

recommend-type

电子表格Excel使用技巧163种使用技巧大全

25. 完全删除EXCEL中的单元格 18 26. 快速删除空行 19 27. 回车键的粘贴功能 19 28. 快速关闭多个文件 20 29. 选定多个工作表 20 30. 对多个工作表快速编辑 20 31. 移动和复制工作表 21 32. 工作表的删除 21 33. ...
recommend-type

IBM WebSphere Portal门户开发笔记01

2、向SWF图片新闻播放器添加带有&符号的多个参数 368 3、SCHEME模式文件代码 369 4、ECLIPSE添加SVN 370 5、手工采集WAS JAVACORE 370 6、手工采集PORTAL JAVACORE 371 7、WAS和PORTAL各端口查看路径 372 二十、DB2...
recommend-type

Excel使用技巧大全(超全).doc

58. 在EXCEL中快速计算一个人的年龄 28 59. 快速修改单元格次序 29 60. 将网页上的数据引入到EXCEL表格中 29 三、 图形和图表编辑技巧 29 1. 在网上发布EXCEL生成的图形 29 2. 创建图表连接符 30 3. 将EXCEL单元格...
recommend-type

微软C#语言规范,C#语言教程中文版

1.6.6.4 虚方法、重写方法和抽象方法 18 1.6.6.5 方法重载 20 1.6.7 其他函数成员 21 1.6.7.1 构造函数 22 1.6.7.2 属性 23 1.6.7.3 索引器 23 1.6.7.4 事件 23 1.6.7.5 运算符 24 1.6.7.6 析构函数 25 1.7 结构 25 ...
recommend-type

VC++常用的共用函数100多页

◆当对话框中有一个滚动条是,当滚动滚动条时的消息控制函数◆ 27 ◆将一个CWnd指针转换成一个控件ID(整数)注意用GetDlgItem()函数是从一个控件ID转换成一个CWnd的指针◆ 28 ◆如果在对话框中自定义一个消息的方法,...
recommend-type

CIC Compiler v4.0 LogiCORE IP Product Guide

CIC Compiler v4.0 LogiCORE IP Product Guide是Xilinx Vivado Design Suite的一部分,专注于Vivado工具中的CIC(Cascaded Integrator-Comb滤波器)逻辑内核的设计、实现和调试。这份指南涵盖了从设计流程概述、产品规格、核心设计指导到实际设计步骤的详细内容。 1. **产品概述**: - CIC Compiler v4.0是一款针对FPGA设计的专业IP核,用于实现连续积分-组合(CIC)滤波器,常用于信号处理应用中的滤波、下采样和频率变换等任务。 - Navigating Content by Design Process部分引导用户按照设计流程的顺序来理解和操作IP核。 2. **产品规格**: - 该指南提供了Port Descriptions章节,详述了IP核与外设之间的接口,包括输入输出数据流以及可能的控制信号,这对于接口配置至关重要。 3. **设计流程**: - General Design Guidelines强调了在使用CIC Compiler时的基本原则,如选择合适的滤波器阶数、确定时钟配置和复位策略。 - Clocking和Resets章节讨论了时钟管理以及确保系统稳定性的关键性复位机制。 - Protocol Description部分介绍了IP核与其他模块如何通过协议进行通信,以确保正确的数据传输。 4. **设计流程步骤**: - Customizing and Generating the Core讲述了如何定制CIC Compiler的参数,以及如何将其集成到Vivado Design Suite的设计流程中。 - Constraining the Core部分涉及如何在设计约束文件中正确设置IP核的行为,以满足具体的应用需求。 - Simulation、Synthesis and Implementation章节详细介绍了使用Vivado工具进行功能仿真、逻辑综合和实施的过程。 5. **测试与升级**: - Test Bench部分提供了一个演示性的测试平台,帮助用户验证IP核的功能。 - Migrating to the Vivado Design Suite和Upgrading in the Vivado Design Suite指导用户如何在新版本的Vivado工具中更新和迁移CIC Compiler IP。 6. **支持与资源**: - Documentation Navigator and Design Hubs链接了更多Xilinx官方文档和社区资源,便于用户查找更多信息和解决问题。 - Revision History记录了IP核的版本变化和更新历史,确保用户了解最新的改进和兼容性信息。 7. **法律责任**: - 重要Legal Notices部分包含了版权声明、许可条款和其他法律注意事项,确保用户在使用过程中遵循相关规定。 CIC Compiler v4.0 LogiCORE IP Product Guide是FPGA开发人员在使用Vivado工具设计CIC滤波器时的重要参考资料,提供了完整的IP核设计流程、功能细节及技术支持路径。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB导入Excel最佳实践:效率提升秘籍

![MATLAB导入Excel最佳实践:效率提升秘籍](https://csdn-blog-1258434200.cos.ap-shanghai.myqcloud.com/images/20190310145705.png) # 1. MATLAB导入Excel概述 MATLAB是一种强大的技术计算语言,它可以轻松地导入和处理来自Excel电子表格的数据。通过MATLAB,工程师、科学家和数据分析师可以高效地访问和操作Excel中的数据,从而进行各种分析和建模任务。 本章将介绍MATLAB导入Excel数据的概述,包括导入数据的目的、优势和基本流程。我们将讨论MATLAB中用于导入Exce
recommend-type

android camera2 RggbChannelVector

`RggbChannelVector`是Android Camera2 API中的一个类,用于表示图像传感器的颜色滤波器阵列(CFA)中的红色、绿色和蓝色通道的增益。它是一个四维向量,包含四个浮点数,分别表示红色、绿色第一通道、绿色第二通道和蓝色通道的增益。在使用Camera2 API进行图像处理时,可以使用`RggbChannelVector`来控制图像的白平衡。 以下是一个使用`RggbChannelVector`进行白平衡调整的例子: ```java // 获取当前的CaptureResult CaptureResult result = ...; // 获取当前的RggbChan
recommend-type

G989.pdf

"这篇文档是关于ITU-T G.989.3标准,详细规定了40千兆位无源光网络(NG-PON2)的传输汇聚层规范,适用于住宅、商业、移动回程等多种应用场景的光接入网络。NG-PON2系统采用多波长技术,具有高度的容量扩展性,可适应未来100Gbit/s或更高的带宽需求。" 本文档主要涵盖了以下几个关键知识点: 1. **无源光网络(PON)技术**:无源光网络是一种光纤接入技术,其中光分配网络不包含任何需要电源的有源电子设备,从而降低了维护成本和能耗。40G NG-PON2是PON技术的一个重要发展,显著提升了带宽能力。 2. **40千兆位能力**:G.989.3标准定义的40G NG-PON2系统提供了40Gbps的传输速率,为用户提供超高速的数据传输服务,满足高带宽需求的应用,如高清视频流、云服务和大规模企业网络。 3. **多波长信道**:NG-PON2支持多个独立的波长信道,每个信道可以承载不同的服务,提高了频谱效率和网络利用率。这种多波长技术允许在同一个光纤上同时传输多个数据流,显著增加了系统的总容量。 4. **时分和波分复用(TWDM)**:TWDM允许在不同时间间隔内分配不同波长,为每个用户分配专用的时隙,从而实现多个用户共享同一光纤资源的同时传输。 5. **点对点波分复用(WDMPtP)**:与TWDM相比,WDMPtP提供了一种更直接的波长分配方式,每个波长直接连接到特定的用户或设备,减少了信道之间的干扰,增强了网络性能和稳定性。 6. **容量扩展性**:NG-PON2设计时考虑了未来的容量需求,系统能够灵活地增加波长数量或提高每个波长的速率,以适应不断增长的带宽需求,例如提升至100Gbit/s或更高。 7. **应用场景**:40G NG-PON2不仅用于住宅宽带服务,还广泛应用于商业环境中的数据中心互联、企业网络以及移动通信基站的回传,为各种业务提供了高性能的接入解决方案。 8. **ITU-T标准**:作为国际电信联盟电信标准化部门(ITU-T)的一部分,G.989.3建议书为全球的电信运营商和设备制造商提供了一套统一的技术规范,确保不同厂商的产品和服务之间的兼容性和互操作性。 9. **光接入网络**:G.989.3标准是接入网络技术的一个重要组成部分,它与光纤到户(FTTH)、光纤到楼(FTTB)等光接入方案相结合,构建了高效、可靠的宽带接入基础设施。 ITU-T G.989.3标准详细规定了40G NG-PON2系统的传输汇聚层,为现代高速网络接入提供了强大的技术支持,推动了光通信技术的持续进步。