排序算法性能分析说明书.docVIP

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
排序算法性能分析说明书

******************* 实践教学 ******************* 兰州理工大学 计算机与通信学院 2012年春季学期 算法与数据结构课程设计 题 目: 排序算法性能分析 专业班级:10级软件工程基地班 姓 名: 学 号: 指导教师: 王旭阳 成 绩: 目 录 摘 要 1 1.采用类c语言定义相关的数据类型 2 2.各模块的伪码算法 2 3.函数的调用关系图 6 4.调试分析 7 5.测试结果 8 6.源程序(带注释) 11 总 结 15 参考文献 16 致 谢 17 附件Ⅰ 任务一源程序代码 18 摘 要 计算机的日益发展,其应用早已不局限于简单的数值运算,而涉及到问题的分析、数据结构框架的设计以及插入、删除、排序、查找等复杂的非数值处理和操作。算法与数据结构的学习就是为以后利用计算机资源高效地开发非数值处理的计算机程序打下坚实的理论、方法和技术基础。 《算法与数据结构》主要介绍一些最常用的数据结构及基本算法设计,阐明各种数据结构内在的逻辑关系,讨论其在计算机中的存储表示,以及在其上进行各种运算时的实现算法,并对算法的效率进行简单的分析和讨论。数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程。它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。 本次的课程设计主要是对《算法与数据结构》的所有内部排序算法进行了一个汇总、集合,并通过算法设计实现对其性能的分析和评价。在设计过程中重温了C语言中的基本语法以及个别函数的用法,巩固了设计思维方向。 关键词: 排序算法;性能分析;排序算法性能分析; 1.采用类c语言定义相关的数据类型 #define N 1000//定义数组最大为100 const int t=3;//定义希尔排序次数 int d[3]={4,3,1};//定义希尔排序比较量 int m; int qmt;//快速排序的移动次数 int qct;//快速排序的比较次数 printf(%d\t,) 2.各模块的伪码算法 (1) 直接插入排序 InsertSort(Recordnode R[], int n) { for(i=2;=n;++i) if(R[i]R[i-1])//如果待插表中最后一个小,则将其插入表中 { R[0]=R[i]; for(j=i-1;R[0]R[j];--j) R[j+1]=R[j];//记录后移 R[j+1]=R[0];//插入到正确位置 } } (2)折半插入排序 BinsertSort(Recordnode R[],int n) { for(i=2;=n;++i) { R[0]=R[i]; low=1;high=i-1; while(low=high) { m=(low+hige)/2 if(R[0]R[m].key) high=m-1; //插入点在前半区 else low=m+1; //插入点在后半区 } for(j=i-1;j=high+1;--j) R[j+1]=R[j]; R[high+1]=R[0]; } } (3)希尔排序 ShellSort(Recordnode R[], int n) { //用希尔排序法对一个记录r[]排序 int i,j,d; int bool; int x; d=n; do{ d=[d/2]; bool=1 for(i=1;i=L.length-d;i++) { j=i+d if(R[i]R[j]) { x=R[i]; R[i]=R[j]; R[j]=x bool=0 } } while(d1) } } (4) 冒泡排序 void BubbleSort(SeqList R) { //R(1…n)是待排序的文件,采用自上向下扫描,对R做冒泡排序 int i,j; Boolean exchange; //交换标志 for(i=1;in;i++) { //最多做n-1趟排序 exchange=FALSE; //本趟排序开始前,交换标志应为假 for(j=n-1;j=

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档