排序算法的实现与对比.doc_第1页
排序算法的实现与对比.doc_第2页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件技术基础实验报告 班级: 姓名: 学号: 实验三 排序算法的实现与对比实验目的:1、 掌握常用的排序方法,并用c语言实现排序算法;2、 理解排序的定义和各种排序的特点;3、 了解排序过程以及依据的原则,并了解各种排序方法的时间复杂度分析,掌握一种计时方法。实验内容:(a) 分别编写函数进行冒泡排序、简单插入排序、简单选择排序、快速排序(b) 编制一个应用程序,它将随机产生n个整数插入到一个顺序表中,然后分别用上述排序算法对这个顺序表进行排序:记录并显示各种方法的运行时间;(c) 以n=5000和n=50000运行这个程序,对算法运行的时间作比较分析。实验步骤: 首先,对几种排序的方法进行函数的编译,同时进行主函数调用的编译,完成后,进行程序语法错误的修改,而后,屏蔽其他排序方法,进行第一个排序程序的调试,完成后进行第二个程序的调试,就这样一一进行调试,调试中的,经常遇到最后一个随机数不排序的情况,通过多产生一个随机数,少输出最后一个随机数的方法解决的。完成这个后,就可以往程序中添加计时函数,而后就完成试验了。程序如下:#include #include #include #include #include void maopao(int r,int n);void charu(int r,int n);void xuanze(int r,int n);void kuaisu(int r,int low,int high);int qpass(int r,int low,int high);void main()int i,r100000,n,flag=1;char j;printf(请输入产生的随机数个数n:);scanf(%d,&n);for(i=1;i=n+1;i+)ri=rand();for(i=1;i=n;i+) printf( %d ,ri); printf( n);clock_t start,end;double duration;while(flag) for(i=1;i=n+1;i+) ri=rand();printf(请选择:n);printf(1.冒泡排序n); printf(2.简单插入排序n); printf(3.简单选择排序n); printf(4.快速排序n); scanf( %c,&j);switch(j) case1: start=clock(); maopao(r,n-1); for(i=1;i=n;i+) printf(%d ,ri); end=clock(); duration=(double)(end-start); printf(n); printf(1.冒泡排序的时间: ); printf(%fn,duration);break; case2: start=clock(); charu(r,n-1); for(i=1;i=n;i+) printf(%d ,ri); end=clock(); duration=(double)(end-start); printf(n); printf(2.简单插入排序的时间: ); printf(%fn,duration);break; case3: start=clock();xuanze(r,n-1); for(i=1;i=n;i+) printf(%d ,ri); end=clock(); duration=(double)(end-start); printf(n); printf(3.简单选择排序的时间: ); printf(%fn,duration); break; case4: start=clock();kuaisu(r,1,n); for(i=1;i=n;i+) printf(%d ,ri); end=clock(); duration=(double)(end-start); printf(n); printf(4.快速排序的时间: ); printf(%fn,duration); break;void maopao(int r,int n)int i,j,flag,temp;i=1;doflag=0;for(j=1;jrj+1)temp=rj; rj=rj+1;rj+1=temp;flag=1;i+;while (in)&flag);void charu(int r,int n)int i,j;for(i=2;i=n+1;i+)r0=ri;j=i-1;while(r0rj)rj+1=rj;j-;rj+1=r0;void xuanze(int r,int n)int i,j,k,temp;for(i=1;in+1;i+)k=i;for(j=i+1;j=n+1;j+)if(rjrk)k=j; if(i!=k) temp=rk; rk=ri; ri=temp;void kuaisu(int r,int low,int high)int i;if (lowhigh)i=qpass(r,low,high);kuaisu(r,low,i-1);kuaisu(r,i+1,high);int qpass(int r,int low,int high)int i,j,k,x;i=low;j=high;x=rlow;k=rlow;while(ij)while(i=k)j-;ri=rj;while(ij)&ri=k)i+;rj=ri;ri=x;return i;运行程序:n=5000时冒泡排序:简单插入排序:简单插入排序:快速排序:n=50000时冒泡排序:简单插入排序:简单选择排序:快速排序:经对比,可知快速排序的排列速度最快。实验总结: 实验过程中,遇到错误要认真查看,必须要有耐心,否则出现的错误不容易发现。调试程序时,数据要多次更换,以防是刚好的情况,调完程序后可对程序进行一定的修饰,使运行的程序更美观。我的大学爱情观目录:1、 大学概念2、 分析爱情健康观3、 爱情观要三思4、 大学需要对爱情要认识和理解5、 总结1、什么是大学爱情:大学是一个相对宽松,时间自由,自己支配的环境,也正因为这样,培植爱情之花最肥沃的土地。大学生恋爱一直是大学校园的热门话题,恋爱和学业也就自然成为了大学生在校期间面对的两个主要问题。恋爱关系处理得好、正确,健康,可以成为学习和事业的催化剂,使人学习努力、成绩上升;恋爱关系处理的不当,不健康,可能分散精力、浪费时间、情绪波动、成绩下降。因此,大学生的恋爱观必须树立在健康之上,并且树立正确的恋爱观是十分有必要的。因此我从下面几方面谈谈自己的对大学爱情观。2、什么是健康的爱情:(d) 尊重对方,不显示对爱情的占有欲,不把爱情放第一位,不痴情过分;(e) 理解对方,互相关心,互相支持,互相鼓励,并以对方的幸福为自己的满足; (f) 是彼此独立的前提下结合;3、什么是不健康的爱情:1)盲目的约会,忽视了学业;2)过于痴情,一味地要求对方表露爱的情怀,这种爱情常有病态的夸张;3)缺乏体贴怜爱之心,只表现自己强烈的占有欲;4)偏重于外表的追求;4、大学生处理两人的在爱情观需要三思:4、 不影响学习:大学恋爱可以说是一种必要的经历,学习是大学的基本和主要任务,这两者之间有错综复杂的关系,有的学生因为爱情,过分的忽视了学习,把感情放在第一位;学习的时候就认真的去学,不要去想爱情中的事,谈恋爱的时候用心去谈,也可以交流下学习,互相鼓励,共同进步。5、 有足够的精力:大学生活,说忙也会很忙,但说轻松也是相对会轻松的!大学生恋爱必须合理安排自身的精力,忙于学习的同时不能因为感情的事情分心,不能在学习期间,放弃学习而去谈感情,把握合理的精力,分配好学习和感情。3、 有合理的时间;大学时间可以分为学习和生活时间,合理把握好学习时间和生活时间的“度”很重要;学习的时候,不能分配学习时间去安排两人的在一起的事情,应该以学习为第一;生活时间,两人可以相互谈谈恋爱,用心去谈,也可以交流下学习,互相鼓励,共同进步。5、大学生对爱情需要认识与理解,主要涉及到以下几个方面:(1) 明确学生的主要任务“放弃时间的人,时间也会放弃他。”大学时代是吸纳知识、增长才干的时期。作为当代大学生,要认识到现在的任务是学习学习做人、学习知识、学习为人民服务的本领。在校大学生要集中精力,投入到学习和社会实践中,而不是因把过多的精力、时间用于谈情说爱浪费宝贵的青春年华。因此,明确自己的目标,规划自己的学习道路,合理分配好学习和恋爱的地位。(2) 树林正确的恋爱观提倡志同道合、有默契、相互喜欢的爱情:在恋人的选择上最重要的条件应该是志同道合,思想品德、事业理想和生活情趣等大体一致。摆正爱情与学习、事业的关系:大学生应该把学习、事业放在首位,摆正爱情与学习、事业的关系,不能把宝贵的大学时间,锻炼自身的时间都用于谈情说有爱而放松了学习。 相互理解、相互信任,是一份责任和奉献。爱情是奉献而不时索取,是拥有而不是占有。身边的人与事时刻为我们敲响警钟,不再让悲剧重演。生命只有一次,不会重来,大学生一定要树立正确的爱情观。(3) 发展健康的恋爱行为 在当今大学校园,情侣成双入对已司空见惯。抑制大学生恋爱是不实际的,大学生一定要发展健康的恋爱行为。与恋人多谈谈学习与工作,把恋爱行为限制在社会规范内,不致越轨,要使爱情沿着健康的道路发展。正如马克思所说:“在我看来,真正的爱情是表现在恋人对他的偶像采取含蓄、谦恭甚至羞涩的态度,而绝不是表现在随意流露热情和过早的亲昵。”(4) 爱情不是一件跟风的事儿。很多大学生的爱情实际上是跟风的结果,是看到别人有了爱情,看到别人幸福的样子(注意,只是看上去很美),产生了羊群心理,也就花了大把的时间和精力去寻找爱情(5) 距离才是保持爱情之花常开不败的法宝。爱情到底需要花多少时间,这是一个很大的问题。有的大学生爱情失败,不是因为男女双方在一起的时间太少,而是因为他们在一起的时间太多。相反,很多大学生恋爱成功,不是因为男女双方在一起的时间太少,而是因为他们准确地把握了在一起的时间的多少程度。(6) 爱情不是自我封闭的二人世界。很多人过分的活在两人世界,对身边的同学,身边好友渐渐的失去联系,失去了对话,生活中只有彼此两人;班级活动也不参加,社外活动也不参加,每天除了对方还是对方,这样不利于大学生健康发展,不仅影

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论