资源描述
软件技术基础实验报告 班级: 姓名: 学号: 实验三 排序算法的实现与对比实验目的: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) 爱情不是自我封闭的二人世界。很多人过分的活在两人世界,对身边的同学,身边好友渐渐的失去联系,失去了对话,生活中只有彼此两人;班级活动也不参加,社外活动也不参加,每天除了对方还是对方,这样不利于大学生健康发展,不仅影响学习,影响了自身交际和合作能力。总结:男女之间面对恋爱,首先要摆正好自己的心态,树立自尊、自爱、自强、自重应有的品格,千万不要盲目地追求爱,也不宜过急追求爱,要分清自己的条件是否成熟。要树立正确的恋爱观,明确大学的目的,以学习为第一;规划好大学计划,在不影响学习的条件下,要对恋爱认真,专一,相互鼓励,相互学习,共同进步;认真对待恋爱观,做健康的恋爱;总之,我们大学生要树立正确的恋爱观念,让大学的爱情成为青春记忆里最美的风景,而不是终身的遗憾!
展开阅读全文