数据结构中查找和排序算法实验报告.doc

数据结构中查找和排序算法实验报告.doc

ID:48601011

大小:226.50 KB

页数:4页

时间:2020-01-29

数据结构中查找和排序算法实验报告.doc_第1页
数据结构中查找和排序算法实验报告.doc_第2页
数据结构中查找和排序算法实验报告.doc_第3页
数据结构中查找和排序算法实验报告.doc_第4页
资源描述:

《数据结构中查找和排序算法实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、郑州轻工业软件学院试验报告姓名张文豪班级测试技术15-01试验名称数据结构中查找和排序算法三.实验分析与步骤:1.折半查找分析:有序表表示静态查找表时,Search函数可用折半查找来实现。先确定待查记录所在的范围(区间),然后逐步缩小范围直到找到或找不到该记录为止。2.顺序查找分析:查找操作的性能分析:查找算法中的基本操作是将记录的关键字和给定值进行比较,,通常以“其关键字和给定值进行过比较的记录个数的平均值”作为衡量依据。平均查找长度:为确定记录在查找表中的位置,需用和给定值进行比较的关键字个数的期望值称为查找算法在查找成功时的平均查找长度。其中:Pi为查找表中第i

2、个记录的概率,且;Ci为找到表中其关键字与给定值相等的第i个记录时,和给定值已进行过比较的关键字个数。等概率条件下有:假设查找成功与不成功的概率相同:3.归并排序分析:将两个或两个以上的有序表组合成一个新的有序表的方法叫归并。第页,共页假设初始序列含有n个记录,则可看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到n/2个长度为2或1的有序子序列;再两两归并,如此重复。4.堆排序分析:只需要一个记录大小的辅助空间,每个待排序的记录仅占有一个存储空间。什么是堆?n个元素的序列{k1,k2,...,kn}当且仅当满足下列关系时,称之为堆。关系一:ki<=k2

3、i关系二:ki<=k2i+1(i=1,2,...,n/2)堆排序要解决两个问题:1、如何由一个无序序列建成一个堆?2、如何在输出堆顶元素之后,调整剩余元素成为一个新的堆?问题2的解决方法:四.实验数据与清单:1.折半查找算法描述如下:intSearch_Bin(SSTableST,KeyTypekey)low=1;high=ST.length;while(low<=high){mid=(low+high)/2;ifEQ(key,ST.elem[mid].key)returnmid;elseifLT(key,ST.elem[mid].key)high=mid-1;els

4、elow=mid+1;}return0;第页,共页}//Search_Bin;2.顺序查找算法描述如下:静态查找表的顺序存储结构:typedefstruct{ElemType*elem;intlength;}SSTable;顺序查找:从表中最后一个记录开始,逐个进行记录的关键字和给定值的比较,若某个记录的关键字和给定值比较相等,则查找成功,找到所查记录;反之,查找不成功。intSearch_Seq(SSTableST,KeyTypekey){ST.elme[0].key=key;for(i=ST.length;!EQ(ST.elem[i].key,key);--i);

5、returni;}3.归并排序算法描述如下:merge(ListTyper,intl,intm,intn,ListType&r2){i=l;j=m+1;k=l-1;while(i<=m)and(j

6、;else{mergesort(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,intk,intm){i=k;j=2*i;x=r[k].key;finished=FALSE;t=r[k];while((j<=m)&&(!finished)){第页,共页if((jr[j+1].key))j++;if(x<=r[j].key)finished:=TRUE;else{r[i]=r[j];i=j;j=2*i;}

7、}r[i]=t;}HeapSort(ListType&r){for(i=n/2;i>0;i--)sift(r,i,n);for(i=n;i>1;i--){r[1]<->r[i];sift(r,i,i-1)}}五.实验体会:通过本次实验,我了发现书本上的知识和老师的讲解都能慢慢理解。但是做实验的时候,需要我把理论变为上机调试,这无疑是最难的部分,有时候我想不到合适的算法去解决问题,就请教同学,上网搜索,逐渐纠正了自己的错误。这次的程序设计对我的编程设计思维有很大的提高,以前我很不懂这门课,觉得它很难,但是现在明白了一些代码的应用,明白了每个程序都有相似

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。