数据结构实验报告C语言查找与排序,数据结构中查找和排序算法实验报告.doc

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

延安大学计算机学院试验报告纸附页

姓名班级试验名称三.实验分析与步骤:

1.折半查找有序表表示静态查找表时,Search函数可用折半查找来实现。先确定待查记录所在的范围(区间),然后逐步缩小范围直到找到或找不到该记录为止。

查找操作的性能分析:查找算法中的基本操作是将记录的关键字和给定值进行比较,,通常以“其关键字和给定值进行过比较的记录个数的平均值”作为衡量依据。平均查找长度:为确定记录在查找表中的位置,需用和给定值进行比较的关键字个数的期望值称为查找算法在查找成功时的平均查找长度。

其中:Pi为查找表中第i个记录的概率,且; Ci为找到表中其关键字与给定值相等的第i个记录时,和给定值已进行过比较的关键字个数。

等概率条件下有:

假设查找成功与不成功的概率相同:

将两个或两个以上的有序表组合成一个新的有序表的方法叫归并假设初始序列含有n个记录,则可看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到n/2个长度为2或1的有序子序列;再两两归并,如此重复。

只需要一个记录大小的辅助空间,每个待排序的记录仅占有一个存储空间。什么是堆?n个元素的序列{k1,k2,...,kn}当且仅当满足下列关系时,称之为堆。关系一:ki<=k2i 关系二:ki<=k2i+1(i=1,2,...,n/2)堆排序要解决两个问题:1、如何由一个无序序列建成一个堆?2、如何在输出堆顶元素之后,调整剩余元素成为一个新的堆?问题2的解决方法:

你可能感兴趣的:(数据结构实验报告C语言查找与排序,数据结构中查找和排序算法实验报告.doc)