网站大量收购独家精品文档,联系QQ:2885784924

排序算法应用(直接法、插入法、shell排序).doc

排序算法应用(直接法、插入法、shell排序).doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
排序算法应用(直接法、插入法、shell排序)

计算机软件技术基础(VC)课程设计报告 一、题目: 排序算法应用二(直接法、插入法、shell排序)10 二、设计思路 1、总体设计 1)分析程序的功能 实现的功能是将一组无序数列通过排序使其成为有序数列。分别使用直接法,插入法,shell法进行排序,并统计排序次数以及比较三种排序法的优劣。 2)系统总体结构:设计程序的组成模块,简述各模块功能。 本程序由主函数,赋值函数,插入法函数,直接法函数,shell法函数五部分构成,主函数负责串联整个程序,各个分函数实现排序功能,并返回排序次数。 2、各功能模块的设计:说明各功能模块的实现方法 主函数将各个分函数串联成为整个程序,经过函数调用,各个分函数实现排序功能。并将排序次数返回给主函数。 3、设计中的主要困难及解决方案 在这部分论述设计中遇到的主要困难及解决方案。 1)困难1:将三种排序结果一起输出,而只进行一次输入。 解决方案:将输入的数组进行备份,存到一单独的数组中,每次排序完成后,将数组还原,然后再进行下一种排序。 2)困难2:使用赋值函数进行赋值。 解决方案:新建一个源文件,将赋值函数编译在里面,然后再主函数中进行调用。 4、你所设计的程序最终完成的功能 1)说明你编制的程序能完成的功能 实现的功能是将一组无序数列通过排序使其成为有序数列。并统计排序次数,比较优劣。 2)准备的测试数据及运行结果 准备的测试数据 12 32 6 98 44 55 225 36 运行结果 三、程序清单 1、shell法.cpp文件清单 int shell(int a[],int n) { int t,m,e=0; for(int H=5;H0;H--) { m=1; while(m!=0) { m=0; for(int I=0;In-H;I++) { if(a[I]a[I+H]) { e+=1; t=a[I]; a[I]=a[I+H]; a[I+H]=t; m+=1; } } } } return e; } 2、插入法.cpp文件清单 int charu(int a[],int n) { int i,j,t,c=0; for(i=1;in;i++) { t=a[i]; for(j=i-1;j=0a[j]t;j--) { a[j+1]=a[j]; c+=1; } a[j+1]=t; } return c; } 3、赋值.cpp文件清单 #includeiostream.h void fuzhi(int a[],int n) { cout输入n个数:endl; for(int i=0;in;i++) { int j=i+1; cout请输入第j个数:; cina[i]; } } 4、排序.cpp文件清单 #includeiostream.h #includefile.h void main() { int a[50],b[50]; int n,c,d,e,i; cout输入数据个数:; cinn; fuzhi(a,n); for(i=0;in;i++) b[i]=a[i]; e=shell(a,n); coutendl; coutShell排序法排序后为:endl; for(i=0;in;i++) couta[i]\t; coutendl排序次数为:eendl; for(i=0;in;i++) a[i]=b[i]; d=zhijie(a,n); coutendlendl; cout直接排序法排序后为:endl; for(i=0;in;i++) couta[i]\t; coutendl排序次数为:dendl; for(i=0;in;i++) a[i]=b[i]; c=charu(a,n); coutendlendl; cout插入排序法排序后为:endl; for(i=0;in;i++) couta[i]\t; coutendl排序次数为:cendl; } 5.直接法.cpp文件清单 int zhijie(int a[],int n) { int t,d=0; for(int w=0;wn-1;w++) { for(int i=w+1;in;i++) { if (a[w]a[i]) { d+=1; t=a[w]; a[w]=a[i]; a[i]=t; }

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档