1、第 页,共 页郑州轻工业软件学院试验报告姓名 张文豪 班级 测试技术 15-01 试验名称 数据结构中查找和排序算法三实验分析与步骤:1.折半查找分析:有序表表示静态查找表时,Search 函数可用折半查找来实现。先确定待查记录所在的范围(区间) ,然后逐步缩小范围直到找到或找不到该记录为止。2.顺序查找分析:查找操作的性能分析:查找算法中的基本操作是将记录的关键字和给定值进行比较,通常以“其关键字和给定值进行过比较的记录个数的平均值”作为衡量依据。平均查找长度:为确定记录在查找表中的位置,需用和给定值进行比较的关键字个数的期望值称为查找算法在查找成功时的平均查找长度。其中:Pi 为查找表中第
2、 i 个记录的概率,且 ; Ci 为找到表中其关键字与给定值相等的第 i 个记录时,和给定值已进行过比较的关键字个数。等概率条件下有:假设查找成功与不成功的概率相同:3.归并排序分析:将两个或两个以上的有序表组合成一个新的有序表的方法叫归并。第 页,共 页假设初始序列含有 n 个记录,则可看成是 n 个有序的子序列,每个子序列的长度为 1,然后两两归并,得到 n/2 个长度为 2 或 1 的有序子序列;再两两归并,如此重复。4.堆排序分析:只需要一个记录大小的辅助空间,每个待排序的记录仅占有一个存储空间。什么是堆?n 个元素的序列k1,k2,.,kn当且仅当满足下列关系时,称之为堆。关系一:k
3、irj+1.key) j+;if (x0;i-) sift(r,i,n);for(i=n;i1;i-)r1ri;sift(r,i,i-1)五实验体会:通过本次实验,我了发现书本上的知识和老师的讲解都能慢慢理解。但是做实验的时候,需要我把理论变为上机调试,这无疑是最难的部分,有时候我想不到合适的算法去解决问题,就请教同学,上网搜索,逐渐纠正了自己的错误。这次的程序设计对我的编程设计思维有很大的提高,以前我很不懂这门课,觉得它很难,但是现在明白了一些代码的应用,明白了每个程序都有相似的特点,通用的结构,也学会了静下心来写程序。我以后还要把没学好的知识点补齐,克服编程过程中的难关,打实基础,向更深入的层次发展。