数据结构中查找和排序算法实验报告.doc_第1页
数据结构中查找和排序算法实验报告.doc_第2页
数据结构中查找和排序算法实验报告.doc_第3页
数据结构中查找和排序算法实验报告.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

郑州轻工业软件学院试验报告姓名张文豪班级测试技术15-01试验名称数据结构中查找和排序算法三实验分析与步骤:1.折半查找分析:有序表表示静态查找表时,Search函数可用折半查找来实现。先确定待查记录所在的范围(区间),然后逐步缩小范围直到找到或找不到该记录为止。2.顺序查找分析:查找操作的性能分析:查找算法中的基本操作是将记录的关键字和给定值进行比较,通常以“其关键字和给定值进行过比较的记录个数的平均值”作为衡量依据。平均查找长度:为确定记录在查找表中的位置,需用和给定值进行比较的关键字个数的期望值称为查找算法在查找成功时的平均查找长度。其中:Pi为查找表中第i个记录的概率,且; Ci为找到表中其关键字与给定值相等的第i个记录时,和给定值已进行过比较的关键字个数。等概率条件下有:假设查找成功与不成功的概率相同:3.归并排序分析:将两个或两个以上的有序表组合成一个新的有序表的方法叫归并。假设初始序列含有n个记录,则可看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到n/2个长度为2或1的有序子序列;再两两归并,如此重复。4.堆排序分析:只需要一个记录大小的辅助空间,每个待排序的记录仅占有一个存储空间。什么是堆?n个元素的序列k1,k2,.,kn当且仅当满足下列关系时,称之为堆。关系一:ki=k2i 关系二:ki=k2i+1(i=1,2,.,n/2)堆排序要解决两个问题:1、如何由一个无序序列建成一个堆?2、如何在输出堆顶元素之后,调整剩余元素成为一个新的堆?问题2的解决方法:四实验数据与清单:1.折半查找算法描述如下:int Search_Bin(SSTable ST,KeyType key)low=1;high=ST.length;while(low=high)mid=(low+high)/2;if EQ(key,ST.elemmid.key) return mid;else if LT(key,ST.elemmid.key) high=mid -1;else low=mid +1 ;return 0;/Search_Bin;2.顺序查找算法描述如下:静态查找表的顺序存储结构:typedef struct ElemType *elem;int length;SSTable;顺序查找:从表中最后一个记录开始,逐个进行记录的关键字和给定值的比较,若某个记录的关键字和给定值比较相等,则查找成功,找到所查记录;反之,查找不成功。int Search_Seq(SSTable ST,KeyType key)ST.elme0.key=key;for(i=ST.length; !EQ(ST.elemi.key,key); -i);return i;3.归并排序算法描述如下:merge(ListType r,int l,int m,int n,ListType &r2)i=l;j=m+1;k=l-1;while(i=m) and(jn) dok=k+1;if (ri.key=rj.key) r2k=ri;i+;else r2i=rj;j+if (i=m) r2k+1.n=ri.m;if (j=n) r2k+1.n=rj.n;mergesort(ListType &r,ListType &r1,int s,int t)if (s=t)r1s=rs;elsemergesort(r,r2,s,s+t/2);mergesort(r,r2,s+t/2+1,t);merge(r2,s,s+t/2,t,r1);4.堆排序算法描述如下:sift(ListType &r,int k,int m)i=k;j=2*i;x=rk.key;finished=FALSE;t=rk;while(j=m)&(!finished)if (jrj+1.key) j+;if (x0;i-) sift(r,i,n);for(i=n;i1;i-)r1ri;sift(r,i,i-1)五实验体会:通过本次实验,我了发现书本上的知识和老师的讲解都能慢慢理解。但是做实验的时候,需要我把理论变为上机调试,这无疑是最难的部分,有时候我想不到合适的算法去解决问题,就请教同学,上网搜索,逐渐纠正了自己的错误。这次的程序设计对我的编程设计思维有很大的提高,以前我很不懂这门课,觉得它很难,但是现

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论