题目2_排序综合_报告.docx

理学院课程设计说明书课 程 名 称: 数据结构与算法A设计实践 课 程 代 码: 6015059题 目 二: 排序综合 年级/专业/班: 2013/信科/2班 学 生 姓 名: 冯金慧 学   号: 3120130902209开 始 时 间: 2015 年 12 月 28 日完 成 时 间: 2016 年 01 月 10 日课程设计成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5)说明书撰写质量(45)总 分(100)指导教师签名: 年 月 日数据结构与算法A设计实践任务书学院名称: 理学院 课程代码:_6015059________专业: 信科 年级: 2012 设计题目 排序综合(限最多一人完成)二、主要内容利用随机函数产生N个随机整数(20000以上),对这些数进行多种方法进行排序。三、具体要求及提交的材料至少采用4种方法实现上述问题求解(提示,可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序)。并把排序后的结果保存在不同的文件中。统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法。如果采用4种或4种以上的方法者,可适当加分。测试数据及测试结果请在上交的资料中写明;必须上机调试通过按《数据结构课程设计大纲》中的要求完成课程设计报告格式。设计结束后,每个学生必须上交的材料有:1 《课程设计报告》打印稿一份 2.课程设计的源代码电子文档一份四、主要技术路线提示 无五、进度安排共计两周时间,建议进度安排如下:选题,应该在上机实验之前完成 2. 需求分析、概要设计可分配4学时完成详细设计可分配4学时 4. 调试和分析可分配10学时。2学时的机动,可提前安排部分提前结束任务的学生答辩六、 推荐参考资料冯博琴 等编著,《软件技术基础》(修改版),西安交通大学出版社,1997严蔚敏 等著,《数据结构》,清华大学出版社,2003李芸芳 等著,《软件技术基础》(第二版),清华大学出版社,2000徐孝凯 等著,《数据结构(C语言描述)》,清华大学出版社,2004指导教师 签名日期 年 月 日系 主 任 审核日期 年 月 日目 录摘 要12 系统分析32.1功能需求32.1.1总体要求41.4数据需求53、详细设计与实现53.1设计思路53.2详细编码53.3实验结果154.系统测试和结果分析164.1设计测试数据164.2调试的详细过程165、算法效率的分析235.1 耗费时间235.2性能分析235.3时间效率24总 结25参考文献27附 录28摘 要排序算法是数据结构学科经典的内容,其中内部排序现有的算法有很多种,其中包含冒泡排序,直接插入排序,简单选择排序,希尔排序,快速排序,堆排序等,各有其特点。对排序算法比较的分析可以遵循若干种不同的准则,通常以排序过程所需要的算法步数作为度量,有时也以排序过程中所作的键比较次数作为度量。特别是当作一次键比较需要较长时间,例如,当键是较长的字符串时,常以键比较次数作为排序算法计算时间复杂性的度量。当排序时需要移动记录,且记录都很大时,还应该考虑记录的移动次数。究竟采用哪种度量方法比较合适要根据具体情况而定。在下面的讨论中我们主要考虑用比较的次数作为复杂性的度量。排序(sorting)是计算机程序设计的一种重要操作,他的功能是将一个数据元素(或记录)的任意序列,重新排列一个按关键字有序的序列。由于待排序的记录数量不同,使得排序过程中涉及的储存器不同,可将排序方法分为两大类:一类是内部排序,指的是待排序记录存放在计算机随机储存器中进行的排序过程;另一类是外部排序,指的是待排序记录的数量很大,以致内存一次不能容纳全部记录,在排序过程中尚需对外存进行访问的排序过程。 内部排序又分为:插入排序、快速排序、选择排序、归并排序和基数排序。其中插入排序又分为:直接插入排序、其他插入排序和希尔排序;选择排序分为:简单选择排序、树形选择排序和堆排序;基数排序又分为:多关键字的排序和链式基数排序。 本次课程设计就是运用VS2010环境编译的程序,首先产生2000个随机数,然后写出几种不同的排序方法分别对产生的随机数进行排序并记录下各种不同法师的排序所耗费的时间,从而找出排序速度比较快的两种方法,并对不同的排序的性能进行了统计与分析。关键词:随机数,排序,时间效率,时间复杂度,文件操作1 引 言 1问题的提出首先,如何产生20000个随机数;其次,对所产生的随机数如何存入文件以方便不同的排序函数所调用;最后,如何处理运用各种排序方法对所产生的随机数进行排序后的结果,并将分析其排序效率。C语言C语言既有高级语言的特点,又具有汇编语言的特点;既是一个成功的系统设计语言,有时一个使用的程序设计语言;既能用来编写不依赖

文档评论(0)

1亿VIP精品文档

相关文档