下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、深圳大学实验报告课程名称:数据结构实验项目名称:查找排序之折半查找学院:信息工程学院专业:电子信息工程指导教师:报告人:学号:2009100000班级:电子1班实验时间:2011年12月2日实验报告提交时间:2011年12月13日教务处制一、实验目的与要求:实验目的:通过编程实现折半查找算法,掌握顺序查找方法的理论原理和实现过程,从而加深对顺序查找方法的理解,提高折半查找方法的编程应用技巧。实验要求:仔细阅读程序框架代码,完成框架中的代码编写要求,结果图参考示例,请输入多组数据检测算法,要验证查找成功和不成功的情况。根据要求编写程序实现折半查找算法,输入测试数据验证算法正确性,并进行代码分析和
2、结果说明。二、方法、步骤:折半查找算法的原理:折半查找的算法思想是将数列按有序化(递增或递减)排列,查找过程中采用跳跃式方式查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。通过一次比较,将查找区间缩小一半。折半查找是一种高效的查找方法。它可以明显减少比较次数,提高查找效率。第一、首先确定整个查找区间的中间位置mid=(low+high)/2第二、用待查关键字值与中间位置的关键字值进行比较;若相等,则查找成功若大于,则在后(右)半个区域继续进行折半查找若小于,则在前(左)半个区域继续进行折半查找第三、对确定的缩小区域再按折半公
3、式,重复上述步骤。最后,得到结果:要么查找成功,要么查找失败。三.实验过程及内容:(对程序代码进行说明和分析,越详细越好,代码排版要整齐,可读性要高)1、详细阅读折半查找算法的实现过程2、详细阅读老师提供的程序框架3、根据实验要求进行代码的编写4、进行代码的调试实验代码如下:#include<iostream.h>#include<stdio.h>constintMaxLen=100;设定图最多包含100个顶点intDataMaxLen;装载数据序列intDnum;表示数据序列实际长度inticount;查找次数/-Search_Bin代码编写intSearch_Bin
4、(intST,intlength,intkey)intlow,mid,high;/low,high,mid分别用来存放待查元素的上界,下界和中间位置low=0;首先low从数组ST口的第0号开始high=length-1;/high从数组ST口的最后一位开始while(low<=high)/循环直至low小于或等于highicount+;/查找次数加一mid=(low+high)/2;/取mid的值if(STmid=key)returnmid;若定值key等于STmid则返回待查元素所在位置elseif(key<STmid)high=mid-1;/不然又若定值key小于STmid则
5、让high指向mid的前面一位elselow=mid+1;再不然则让low指向mid的后面一位return-1;查找不成功返回-1/Search_Bin/*主函数*/intmain()inti,skey;输入数据printf("请输入数组长度(不小于5):");scanf("%d",&Dnum);printf("请按照从小到大的顺序输入数据序列:n");for(i=0;i<Dnum;i+)scanf("%d",&Datai);printf("请输入要查找的数据:");sca
6、nf("%d",&skey);调用函数Search_Bin,并将函数返回结果放在i中i=Search_Bin(Data,Dnum,skey);printf("n");if(i=-1)若Search_Bin返回值为-1则显示查找失败printf("查找失败!n");else/不然则执行下面语句printf("查找成功!n");printf("查找的数据位置在(d)n",i);printf("查找次数(%d)",icount);printf("n");
7、return0;四、实验结论:实结果图:情况一、能够在待查数组中查找到待查元素continue"CUinistrmtor'DesIdQpT卓面还原数据结相曲聆五IoI回情况二、不能够在待查数组中查找到待查元素*C:UsersAdministratorDesktopMX15层镂Z握结构实迨五口回度大"的长到S找免小5查数H44要7SIYJ-kt型输33好7据l的7数一败数an一失次£一要BS-屋屋rtrr-GUsersAdministratorDesktopM面还原播唱结构'实验五一3'再数据分析基于上面程序运行图可以很明显得知整个算法的实现过程,针对第一个图:1、首先建立一个数组存放待查元素2、针对定值key进行折半查找,第一个图可以得到key=113、mid=(low+high)/2=(0+5)/2=2.得到的是ST2=33,查找了一次4、判断ST2=33大于key=11,即执行high=mid-1=15、mid=(low+high)/2=(0+1)/2=0.得到的是ST0=11=key,查找成功,查找了两次6、返回待查元素所在位置7、同理。若查找不成功则返回查找失败五、实验体会:本次实验
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中英语学期工作总结
- 教研年度工作计划
- 2024年担保责任限制及豁免协议样本一
- 小学实习班主任总结
- 新时代创新创业指南(黑龙江农业经济职业学院)知到智慧树答案
- 关于友谊的英语作文
- 六大电子商务网站盈利模式分析
- 公民道德建设主题班会
- 中药炮制学培训课件
- 【病例讨论总结】胸腹主动脉瘤
- 2024-2025学年 数学二年级上册冀教版期末测试卷(含答案)
- 中建医院工程深基坑施工方案
- (高清版)DB5206∕T 140-2021 长裙竹荪种植及烘干技术规程
- Grid Coffee品牌介绍模版
- 国家开放大学《酒店餐饮服务与管理》形考任务1-4参考答案
- 江苏省南京市秦淮区2023-2024学年八年级上学期期末语文试题(解析版)
- 期末模拟测试卷(试题)-2024-2025学年统编版语文二年级上册
- 2024年下半年广东省广州越秀区总工会招聘工会组织员7人易考易错模拟试题(共500题)试卷后附参考答案
- 11260软件工程-国家开放大学2023年1月至7月期末考试真题及答案(共2套)
- 期末测试卷(试题)-2024-2025学年四年级上册数学沪教版
- MOOC 儿科学-四川大学 中国大学慕课答案
评论
0/150
提交评论