欢迎来到天天文库
浏览记录
ID:15425714
大小:87.00 KB
页数:13页
时间:2018-08-03
《冒泡法与选择法排序效率比较》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、课程设计学号班级姓名指导教师2008年3月7日课程设计任务书一、课程设计题目:冒泡法与选择法排序效率比较二、课程设计工作自2008年3月3日至2008年3月10日止三、课程设计内容:用C语言编写软件完成一下任务:比较“冒泡排序”和“选择排序”两种排序方法。完成同样的工作,一个算法的时间效率越高(使用的时间越少),越容易受欢迎。假设算法的时间主要消耗在两个方面:赋值运算,比较运算。请用程序读取给定的数据(file24.txt,由教师提供)后,分别使用“冒泡排序”和“选择排序”两种方法进行排序,并分别
2、统计出各自需要的“赋值运算次数”和“比较运算次数”,从而对它们的时间效率进行初步评价。四、课程设计要求1.程序质量:l贯彻结构化的程序设计思想。l用户界面友好,功能明确,操作方便。l用户界面中的菜单至少应包括“读取数据”、“冒泡法排序”、“选择法排序”、“退出”4项。l代码应适当缩进,并给出必要的注释,以增强程序的可读性。2.课程设计说明书:课程结束后,上交课程设计说明书(打印稿和电子稿),其内容下:l封面l课程设计任务书l目录l需求分析(分析题目的要求)l程序流程图(总体流程图和主要功能模块流程
3、图)l核心技术的实现说明及相应程序段l个人总结l参考资料l源程序及适当的注释指导教师:————学生签名:________xxxxxxxxxxxxx目录一、需求分析1二、程序流程图1三、核心技术的实现说明及相应程序段4四、个人总结7五、参考文献8六、源程序8Ixxxxxxxx一、需求分析经过对程序题目的分析可知,整个程序分为四大部分。每一部分对应一个函数。它们的功能分别是:文件装载(read);冒泡法排序(maopao);选择法排序(xuanze);效率比较主函数(main)。1.文件装载函数实现装
4、载所给文件,读取文件所给数值。2.冒泡法排序函数主要实现数据的冒泡法排序和赋值运算与比较运算的次数。3.选择法排序函数主要实现数据的选择法排序和赋值运算与比较运算的次数。4.效率比较主函数实现冒跑法排序与选择法排序效率比较与界面显示。二、程序流程图1、冒泡排序法流程图4xxxxxxxx定义inti,j,t,a=0,b=0;当j=0~8当i=0~9-jif(stud[i].num5、算a次,比较运算b次反还a+b2、选择法排序流程图4xxxxxxxx定义inti,j,t,a=0,b=0,num=0;当j=10~1min=i;a++当i=0~jif(stud[i].num6、=0是否输出b>s&&b!=0&&s!=0冒泡排序法效率高是否输出输出选择排序法效率高请先运行两种排序方法三、核心技术的实现说明及相应程序段本程序主要由三个自定义函数和一个主函数组成,其中主函数以菜单形式调用三个自定义函数来实现所有功能。其中冒泡法排序函数与选择法排序函数是核心部分。现分别进行说明:1.文件装载函数该函数用于打开指定文件,以便下面的程序段使用其中的数据.其过程是定义一个文件指针,并使之指向指定的文件,然后用fopen函数打开文件.这样文件就装载完毕.具体程序段如下:4#includ7、estructu{intnum;}u[10];voidread()//声明read函数//{inti;FILE*fp;if((fp=fopen("d:\file24.txt","r"))==NULL)//打开文件“file24.txt”//{printf("文件打开失败");return;}for(i=0;i<10;i++)//构成循环//{fscanf(fp,"%6d",&u[i].num);}fclose(fp);//关闭文件//}2.冒泡法排序函数该函数对指定数据排序8、.通过两次循环,依次比较两相邻数据之后替换.直至循环完毕.这时排序完毕.具体函数段如下:maopao()//冒泡法排序//{inti,j,t,a=0,b=0;read();for(j=0;j<9;j++){for(i=0;i<9-j;i++){if(u[i].num
5、算a次,比较运算b次反还a+b2、选择法排序流程图4xxxxxxxx定义inti,j,t,a=0,b=0,num=0;当j=10~1min=i;a++当i=0~jif(stud[i].num6、=0是否输出b>s&&b!=0&&s!=0冒泡排序法效率高是否输出输出选择排序法效率高请先运行两种排序方法三、核心技术的实现说明及相应程序段本程序主要由三个自定义函数和一个主函数组成,其中主函数以菜单形式调用三个自定义函数来实现所有功能。其中冒泡法排序函数与选择法排序函数是核心部分。现分别进行说明:1.文件装载函数该函数用于打开指定文件,以便下面的程序段使用其中的数据.其过程是定义一个文件指针,并使之指向指定的文件,然后用fopen函数打开文件.这样文件就装载完毕.具体程序段如下:4#includ7、estructu{intnum;}u[10];voidread()//声明read函数//{inti;FILE*fp;if((fp=fopen("d:\file24.txt","r"))==NULL)//打开文件“file24.txt”//{printf("文件打开失败");return;}for(i=0;i<10;i++)//构成循环//{fscanf(fp,"%6d",&u[i].num);}fclose(fp);//关闭文件//}2.冒泡法排序函数该函数对指定数据排序8、.通过两次循环,依次比较两相邻数据之后替换.直至循环完毕.这时排序完毕.具体函数段如下:maopao()//冒泡法排序//{inti,j,t,a=0,b=0;read();for(j=0;j<9;j++){for(i=0;i<9-j;i++){if(u[i].num
6、=0是否输出b>s&&b!=0&&s!=0冒泡排序法效率高是否输出输出选择排序法效率高请先运行两种排序方法三、核心技术的实现说明及相应程序段本程序主要由三个自定义函数和一个主函数组成,其中主函数以菜单形式调用三个自定义函数来实现所有功能。其中冒泡法排序函数与选择法排序函数是核心部分。现分别进行说明:1.文件装载函数该函数用于打开指定文件,以便下面的程序段使用其中的数据.其过程是定义一个文件指针,并使之指向指定的文件,然后用fopen函数打开文件.这样文件就装载完毕.具体程序段如下:4#includ
7、estructu{intnum;}u[10];voidread()//声明read函数//{inti;FILE*fp;if((fp=fopen("d:\file24.txt","r"))==NULL)//打开文件“file24.txt”//{printf("文件打开失败");return;}for(i=0;i<10;i++)//构成循环//{fscanf(fp,"%6d",&u[i].num);}fclose(fp);//关闭文件//}2.冒泡法排序函数该函数对指定数据排序
8、.通过两次循环,依次比较两相邻数据之后替换.直至循环完毕.这时排序完毕.具体函数段如下:maopao()//冒泡法排序//{inti,j,t,a=0,b=0;read();for(j=0;j<9;j++){for(i=0;i<9-j;i++){if(u[i].num
此文档下载收益归作者所有