折半查找实验报告

上传人:bin****86 文档编号:60049365 上传时间:2018-11-13 格式:DOCX 页数:10 大小:18.78KB
返回 下载 相关 举报
折半查找实验报告_第1页
第1页 / 共10页
折半查找实验报告_第2页
第2页 / 共10页
折半查找实验报告_第3页
第3页 / 共10页
折半查找实验报告_第4页
第4页 / 共10页
折半查找实验报告_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《折半查找实验报告》由会员分享,可在线阅读,更多相关《折半查找实验报告(10页珍藏版)》请在金锄头文库上搜索。

1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划折半查找实验报告深圳大学实验报告课程名称:学院:计算机与软件学院班级:实验时间:实验报告提交时间:教务处制一、实验目的1、掌握顺序查找、折半查找算法的基本思想2、掌握顺序查找、折半查找算法的实现方法3、掌握顺序查找、折半查找的时间性能二、实验要求1、熟悉C+语言编程2、了解顺序查找、折半查找的原理三、实验内容本次实验有两项必做内容和一项选作内容:顺序查找实验1、问题描述给出一个队列和要查找的数值,找出数值在队列中的位置,队列位置从1开始,要求使用带哨兵的顺序查找算法2、顺序查找算法、

2、在表的第0位置,赋给定值Key、从表中最后一个记录开始、逐个进行记录的关键字和给定值Key的比较、若某个记录比较相等,则查找成功、若直到第1个记录都比较不等,则查找不成功3、输入第一行输入n,表示队列有n个数据第二行输入n个数据,都是正整数,用空格隔开第三行输入t,表示有t个要查找的数值第四行起,输入t个数值,输入t行4、输入样本87445532211995、输出每行输出一个要查找的数值在队列的位置,如果查找不成功,输出字符串error6、输出样本35error折半查找实验1、问题描述在一个有序序列中,折半查找一个关键字;返回查找是否成功,如果成功,输入关键字所在的位置和查找次数。2、查找算法

3、、n个对象从小到大存放在有序顺序表BinList中,Key为给定值、设low、high指向待查元素所在区间的下界、上界,即low=1,high=BinListLen、设mid指向待查区间的中点,即、让Key与mid指向的记录关键字比较若Key=BinListmid,查找成功,结束若KeyBinListmid,则low=mid+1下半区间、重复、操作,直至lowhigh时,查找失败。3、输入第一行输入n,表示队列有n个数据第二行输入n个数据,都是正整数,用空格隔开第三行输入t,表示有t个要查找的数值第四行起,输入t个数值,输入t行4、输入样本86778832288995、输出每行输出一个要查找的

4、数值在队列的位置,如果查找不成功,输出字符串error6、输出样本28Error静态查找之顺序索引查找实验1、问题描述给出一个队列和要查找的数值,找出数值在队列中的位置,队列位置从1开始要求使用顺序索引查找算法,其中索引表查找和块内查找都采用不带哨兵、从头开始的顺序查找方法。2、输入第一行输入n,表示主表有n个数据第二行输入n个数据,都是正整数,用空格隔开第三行输入k,表示主表划分为k个块,k也是索引表的长度第四行输入k个数据,表示索引表中每个块的最大值第五行输入t,表示有t个要查找的数值第六行起,输入t个数值,输入t行3、输入样本18336135484053904、输出每行输出一个要查找的数

5、值在队列的位置和查找次数,数据之间用短划线隔开,如果查找不成功,输出字符串error5、输出样本3-4error12-8error18-9error四、流程图五、程序清单六、程序运行时截图七、实验心得与体会实验十:查找、排序计算机学院12级2班12110XX李龙实验目的:1掌握折半查找算法的思想。2实现折半查找的算法。3掌握常见的排序算法的思想、特点及其适用条件。4能够分析各种算法的效率。5熟练的掌常见的排序算法的程序步骤。实验内容:1建立一静态有序表。2用一个函数实现折半查找算法。3在主函数中输入一组数据,测试算法的正确性。4.按照快速排序思想实现快速排序算法。5.在主函数中输入一段数据,测

6、试算法的正确性。设计思路:开始的时候提示输入一组数据。并存入一维数组中,接下来调用一系列查找算法对其进行处理。顺序查找只是从头到尾进行遍历。二分查找则是先对数据进行排序,然后利用三个标志,分别指向最大,中间和最小数据,接下来根据待查找数据和中间数据的比较不断移动标志,直至找到。二叉排序树则是先构造,构造部分花费最多的精力,比根节点数据大的结点放入根节点的右子树,比根节点数据小的放入根节点的左子树,其实完全可以利用递归实现,这里使用的循环来实现的,感觉这里可以尝试用递归。当二叉树建好后,中序遍历序列即为由小到大的有序序列,查找次数不会超过二叉树的深度。这里还使用了广义表输出二叉树,以使得更直观。

7、哈希表则是利用给定的函数式建立索引,方便查找总体设计:静态表的存储结构typedefstructint*elem;intlength;sstable;voidCreateData(intdata,intlength);/为一个数组赋值/此函数是折半查找函数。其中data是所查寻的数组,length是数组的长度。x是所要查找的数,返回的值是数据x在数组中的位置intBisearch(intdata,intx,intbegin,int(来自:写论文网:折半查找实验报告)last);/折半查找函数,使用过程中只需要给出数组名字,要查找的数值x,数组的起始位置begin及末位置即可。voidPrint

8、Data(intdata,intlength);/输出一个数组的所有元素。定义voidquickSort(int*arr,intl,intr)函数实验结果:输入查找数字:7如上图查找-得出结果排序-得出结果实验总结:本次实验程序结构比较简单,无需复杂的函数调用。但是由于本人编程基础不够扎实,在面对需要很多数组声明和调用的时候,经常弄错,在编译的过程中出现了很多次内存调用出错的情况。后来发现是二维数组的定义上没有做好,引入了动态定义的方法解决了这一问题。通过本次实验,加深了我对查找表的认识。但是,实验中也出现了问题,程序循环不能良好退出。希望经过以后的学习我能解决这些问题。代码:查找代码-见附表

9、1排序代码见附表2实验名称:折半查找:#include#includetypedefstructint*elem;intlength;sstable;intsearchbin(sstableST,intkey)intlow,high,mid;low=1;high=;while(low=high)mid=(low+high)/2;if(key=mid)return(mid);elseif(keymid)high=mid-1;elselow=mid+1;return(0);voidmain()inti,key,location;sstableST;=(int*)malloc(*sizeof(int);printf(请输入表的长度:n);scanf(%d,&);printf(请输入待查找表中的元素:n);for(i=1;i=;i+)scanf(%d,&i);printf(请输入要查找的元素:n);scanf(%d,&key);location=searchbin(ST,key);printf(要查找的元素的位置为:%dn,location);目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号