1 / 13
文档名称:

2020年度冒泡法与选择法排序效率比较.doc

格式:doc   大小:51KB   页数:13页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

2020年度冒泡法与选择法排序效率比较.doc

上传人:书犹药也 2020/3/5 文件大小:51 KB

下载得到文件列表

2020年度冒泡法与选择法排序效率比较.doc

文档介绍

文档介绍:课程设计学号班级姓名指导教师3月7日 课程设计任务书一、课程设计题目:冒泡法与选择法排序效率比较二、课程设计工作自3月3日至3月10日止三、课程设计内容:用C语言编写软件完成一下任务:比较“冒泡排序”和“选择排序”两种排序方法。完成同样的工作,一个算法的时间效率越高(使用的时间越少),越容易受欢迎。假设算法的时间主要消耗在两个方面:赋值运算,比较运算。请用程序读取给定的数据(,由教师提供)后,分别使用“冒泡排序”和“选择排序”两种方法进行排序,并分别统计出各自需要的“赋值运算次数”和“比较运算次数”,从而对它们的时间效率进行初步评价。四、:贯彻结构化的程序设计思想。用户界面友好,功能明确,操作方便。用户界面中的菜单至少应包括“读取数据”、“冒泡法排序”、“选择法排序”、“退出”4项。代码应适当缩进,并给出必要的注释,以增强程序的可读性。:课程结束后,上交课程设计说明书(打印稿和电子稿),其内容下:封面课程设计任务书目录需求分析(分析题目的要求)程序流程图(总体流程图和主要功能模块流程图)核心技术的实现说明及相应程序段个人总结参考资料源程序及适当的注释指导教师:————学生签名:________目录一、需求分析 1二、程序流程图 1三、核心技术的实现说明及相应程序段 4四、个人总结 7五、参考文献 8六、源程序 8一、需求分析经过对程序题目的分析可知,整个程序分为四大部分。每一部分对应一个函数。它们的功能分别是:文件装载(read);冒泡法排序(maopao);选择法排序(xuanze);效率比较主函数(main)。文件装载函数实现装载所给文件,读取文件所给数值。冒泡法排序函数主要实现数据的冒泡法排序和赋值运算与比较运算的次数。选择法排序函数主要实现数据的选择法排序和赋值运算与比较运算的次数。效率比较主函数实现冒跑法排序与选择法排序效率比较与界面显示。二、程序流程图1、冒泡排序法流程图定义inti,j,t,a=0,b=0;当j=0~8当i=0~9-jif(stud[i].num<stud[i+1].num])是否交换stud[i].num<stud[i+1].numa+3,b+1输出冒泡法:赋值运算a次,比较运算b次反还a+b2、选择法排序流程图定义inti,j,t,a=0,b=0,num=0;当j=10~1min=i;a++当i=0~jif(stud[i].num<stud[min].num)是否min=i;交换stud[i].num和stud[min].num,a+4,b+1输出选择法:赋值运算a次,比较运算b次反回a+b3、文件装载流程图for(i=0;i<10;i++)读取std[i]关闭文件4、排序效率比较模块的流程图b<s&&b!=0&&s!=0是否输出b>s&&b!=0&&s!=0冒泡排序法效率高是否输出输出选择排序法效率高请先运行两种排序方法三、核心技术的实现说明及相应程序段本程序主要由三个自定义函数和一个主函数组成,其中主函数以菜单形式调用三个自定义函数来实现所有功能。其中冒泡法排序函数与选择法排序函数是核心部分。现分别进行说明:文件装载函数该函数用于打开指定文件,,并使之指向指定的文件,:#include<>structu{intnum;}u[10];voidread()//声明read函数//{ inti; FILE*fp; if((fp=fopen("d:\\","r"))==NULL)//打开文件“”// { printf("文件打开失败\n"); return; } for(i=0;i<10;i++)//构成循环// { fscanf(fp,"%6d",&u[i].num); } fclose(fp);//关闭文件//} ,: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<u[i+1].num){t=u[i].num;a++;u[i].num=u[i+1].num;a++;u[i+1].num=t;a++;}b++;}}printf("冒泡法:赋值运算%d次,比较运算%d次\n",a,b);return(a+b);//返回运算次数//}3、,