实验项目五 各种排序算法的性能测试.doc

实验项目五 各种排序算法的性能测试.doc

ID:61425979

大小:31.00 KB

页数:6页

时间:2021-01-29

实验项目五  各种排序算法的性能测试.doc_第1页
实验项目五  各种排序算法的性能测试.doc_第2页
实验项目五  各种排序算法的性能测试.doc_第3页
实验项目五  各种排序算法的性能测试.doc_第4页
实验项目五  各种排序算法的性能测试.doc_第5页
资源描述:

《实验项目五 各种排序算法的性能测试.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验五各种排序算法的性能测试排序就是将一个记录的无序序列调整成为一个有序序列的过程。在对记录进行排序的时候,需要选定一个信息作为排序的依据,例如,可以按学生姓名对学生记录进行排序,这个特别选定的信息称为关键码。排序的主要目的是为了进行快速查找,这就是为什么字典、电话薄和班级名册都是排好序的。在数据结构课程中,我们已经学过了几种内部排序算法,没有一种排序算法在任何情况下都是最好的解决方案,有些排序算法比较简单,但速度相对比较慢;有些排序算法速度比较快,但却很复杂。1.冒泡排序通过对待排序序列从后向前(从下标较大的元素开始),依次比较相邻元素的排序码,若发现逆序则交换,使排序码较小的元素逐

2、渐从后部移向前部(从下标较大的单元移向下标较小的单元),就象水底下的气泡一样逐渐向上冒。冒泡排序算法如下:voidbubblesort(inta[],intn)//冒泡排序C语言描述,待排序的元素放在数组a中{inti,j;inttemp;for(i=0;ii;j--){if(a[j-1]>a[j]){temp=a[j-1];a[j-1]=a[j];a[j]=temp;}}}}2.选择排序假设待排序的列表的n个数据元素放在数组a中,第一次从n个数据元素中找出最小的元素与a[0]交换,第二次从剩下的n-1个元素中找出最小的元素与a[1]交换,…

3、…直到第n-1次在剩下的两个元素中找出最小的元素与a[n-1]交换,剩下的最后一个元素的位置就在a[n].选择排序算法如下:voidselectsort(inta[],intn)//选择排序{inti,j;intmin,temp;for(i=0;i

4、码,右子序列的排序码则大于基准元素的排序码,然后分别对两个子序列继续进行排序,直至整个序列有序。voidquicksort(inta[],intstart,intend)//快速排序{inti,j,mid;i=start;j=end;mid=a[i];while(start>=end)return;while(imid)j--;if(i

5、排序继续对前半部分的元素进行排序quicksort(a,i+1,end);//递归调用快速排序继续对后半部分的元素进行排序}4.直接插入排序实验目的1、学会使用算法时间效率的分析框架分别对以上三个排序算法进行算法分析;2、验证算法运行时间函数随输入规模不断的增大的而增长,增长的次数是多少?3、学会使用表格法和散点图记录实验数据并对数据进行分析。实验内容:一、算法分析框架非递归算法分析的一般步骤:1.决定用哪个(或哪些)参数作为算法问题规模的度量2.找出算法中的基本语句3.检查基本语句的执行次数是否只依赖于问题规模4.建立基本语句执行次数的求和表达式5.用渐进符号表示这个求和表达式分析递

6、归算法时间效率的通用方案:1.决定用哪个参数作为输入规模的度量。2.找出算法的基本操作。3.检查一下,对于相同规模的不同输入,基本操作的执行次数是否可能不同。如果有这种可能,则必须对最差、最优和平均效率做单独的研究。4.对于算法基本操作的执行次数,建立一个递推关系以及相应的初始条件。5.解这个递推式,或者至少确定它的解的增长次数。二、C语言如何产生随机数1.基本函数在C语言中取随机数所需要的函数是:Intrand(void);voidsrand(unsigned int n);rand()函数和srand()函数被声明在头文件stdlib.h中,所以要使用这两个函数必须包含该头文件:#

7、include2.使用方法rand()函数返回0到RAND_MAX之间的伪随机数(pseudorandom)。RAND_MAX常量被定义在stdlib.h头文件中。其值等于32767,或者更大。 srand()函数使用自变量n作为种子,用来初始化随机数产生器。只要把相同的种子传入srand(),然后调用rand()时,就会产生相同的随机数序列。因此,我们可以把时间作为srand()函数的种子,就可以避免重复的发生。如果,调用

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

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

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