冒泡法与选择法排序效率比较
更新时间:2024-03-07 22:42:01 阅读量: 综合文库 文档下载
- 冒泡法排序和选择法排序推荐度:
- 相关推荐
0 沈 阳 航 空 工 业 学 院 课程设计 学 号 班 级 姓 名 指导教师
沈阳航空工业学院
课程设计任务书
一、课程设计题目: 冒泡法与选择法排序效率比较
二、课程设计工作自2008年3月3日至2008年3月10日止 三、课程设计内容:
用C语言编写软件完成一下任务:
比较“冒泡排序”和“选择排序”两种排序方法。完成同样的工作,一个算法的时间效率越高(使用的时间越少),越容易受欢迎。假设算法的时间主要消耗在两个方面:赋值运算,比较运算。请用程序读取给定的数据(file24.txt,由教师提供)后,分别使用“冒泡排序”和“选择排序”两种方法进行排序,并分别统计出各自需要的“赋值运算次数”和“比较运算次数”,从而对它们的时间效率进行初步评价。
四、课程设计要求
1. 程序质量:
? 贯彻结构化的程序设计思想。
? 用户界面友好,功能明确,操作方便。 ? 用户界面中的菜单至少应包括“读取数据”、“冒泡法排序”、“选
择法排序”、“退出”4项。
? 代码应适当缩进,并给出必要的注释,以增强程序的可读性。 2. 课程设计说明书:
课程结束后,上交课程设计说明书(打印稿和电子稿),其内容下: ? 封面
? 课程设计任务书 ? 目录
? 需求分析(分析题目的要求)
? 程序流程图(总体流程图和主要功能模块流程图) ? 核心技术的实现说明及相应程序段 ? 个人总结 ? 参考资料
? 源程序及适当的注释 指导教师:———— 学生签名:________
沈 阳 航 院 设 计 用 纸
目录
一、需求分析 ............................................................ 1 二、程序流程图 ........................................................ 1 三、核心技术的实现说明及相应程序段 ............... 4 四、个人总结 ............................................................ 7 五、参考文献 ............................................................ 7 六、源程序 ................................................................ 7
I
沈 阳 航 院 设 计 用 纸
一、需求分析
经过对程序题目的分析可知,整个程序分为四大部分。每一部分对应一个函数。它们的功能分别是:文件装载(read);冒泡法排序(maopao);选择法排序(xuanze);效率比较主函数(main)。
1. 文件装载函数 实现装载所给文件,读取文件所
给数值。
2. 冒泡法排序函数 主要实现数据的冒泡法排序
和赋值运算与比较运算的次数。
3. 选择法排序函数 主要实现数据的选择法排序
和赋值运算与比较运算的次数。
4. 效率比较主函数 实现冒跑法排序与选择法排
序效率比较 与界面显示。
二、程序流程图 1、冒泡排序法流程图
1
沈 阳 航 院 设 计 用 纸
定义int i,j,t,a=0,b=0; 当j=0~8 当i=0~9-j if(stud[i].num < stud[i+1].num]) 是 否 交换stud[i].num < stud[i+1].num a+3,b+1 输出冒泡法:赋值运算a次,比较运算b次 反还a+b
2、选择法排序流程图
2
沈 阳 航 院 设 计 用 纸
定义int i,j,t,a=0,b=0,num=0; 当j=10~1 min=i;a++ 当i=0~j if(stud[i].num for(i=0;i<10;i++) 读取std[i] 关闭文件 4、排序效率比较模块的流程图 3 沈 阳 航 院 设 计 用 纸 b 本程序主要由三个自定义函数和一个主函数组成,其中主函数以菜单形式调用三个自定义函数来实现所有功能。其中冒泡法排序函数与选择法排序函数是核心部分。现分别进行说明: 1.文件装载函数 该函数用于打开指定文件,以便下面的程序段使用其中的数据.其过程是定义一个文件指针,并使之指向指定的文件,然后用fopen函数打开文件.这样文件就装载完毕. 具体程序段如下: 4 #include void read() // 声明read函数// { int i; FILE *fp; if((fp=fopen(\ //打开文件“file24.txt”// { printf(\文件打开失败\\n\ return; } for(i=0;i<10;i++) //构成循环// { fscanf(fp,\ } fclose(fp); //关闭文件// } 2 .冒泡法排序函数 该函数对指定数据排序.通过两次循环,依次比较两相邻数据之后 替换.直至循环完毕. 这时排序完毕.具体函数段如下: maopao() //冒泡法排序// { int i,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\return(a+b); //返回运算次数// } 3、选择法排序函数 该函数对指定数据排序.通过两次循环,比较之后替换.依次将最大或最小的数分别筛选出来. 这时排序完毕.具体函数段如下: xuanze() //选择法排序// { int i,j,t,a=0,b=0,min; read(); for(j=10;j>0;j--) { min=j; a++; for(i=0;i<=j;i++) { if(u[i].num } b++; t=u[min].num; a++; u[min].num=u[j].num; a++; u[j].num=t; a++; } printf(\选择法:赋值运算%d次,比较运算%d次\\n\ return(a+b); //返回运算次数// } 四、个人总结 一个星期的课程设计结束了,在这几天的学习过程中我学到了很多,让我对C++和WORD的使用更加的了解和熟练。 在实践的过程中让我体会到了挫折与失败的滋味,同时也让我体会到了成功的喜悦。 在编写程序时遇到了很多的困难,但这些并不能阻止我要写好程序的决心,俗话说:“只有功夫深,铁杵磨成针”。 在我不懈的努力和老师的帮助下,一个个困难被我征服,一个崭新的程序完成了。 看着程序的完成心里有说不出的高兴,那是成功的喜悦。我相信 通过这次实践我学到的所有知识将会收益终生。 五、参考文献 1 谭浩强.C程序设计.北京:清华大学出版社,2005 2 刘成等.C语言程序设计实验指导与习题集.北京:中国铁道出版社,2006 六、源程序 #include } u[10]; void read() { int i; FILE *fp; if((fp=fopen(\ { printf(\文件打开失败\\n\ return; } for(i=0;i<10;i++) { fscanf(fp,\ } fclose(fp); } maopao() { int i,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\return(a+b); } xuanze() { int i,j,t,a=0,b=0,min; read(); for(j=10;j>0;j--) { min=j; a++; for(i=0;i<=j;i++) { if(u[i].num } b++; t=u[min].num; a++; u[min].num=u[j].num; a++; u[j].num=t; a++; } printf(\选择法:赋值运算%d次,比较运算%d次\\n\ return(a+b); } void main() { int i,a=0,b=0; char e; printf(\ printf(\ printf(\欢迎使用冒泡选择比较程序---------------\\n\ printf(\装载文件file24.txt--------------------\\n\ printf(\使用冒泡法排-------------------------\\n\ printf(\使用选择法排序----------------------\\n\ printf(\比较两种排序方法的效-------------\\n\ printf(\退出-------------------------------------\\n\ printf(\ for(;;) { scanf(\ if(e=='l') { read(); printf(\文件装载成功,其中数据为:\\n\ for(i=0;i<10;i++) printf(\ printf(\ } else if(e=='a') { a=maopao(); printf(\数据排序成功,排序结果为:\\n\ for(i=0;i<10;i++) printf(\ printf(\ } else if(e=='b') { b=xuanze(); printf(\数据排序成功,排序结果为:\\n\ for(i=0;i<10;i++) printf(\ printf(\ } else if(e=='c') { if(ab&&a!=0&&b!=0) printf(\选择排序法效率高\\n\ else printf(\请先运行两种排序方法\\n\ } else if(e=='q') { printf(\程序结束---------------------\\n\ break;} } } s&&b!=0&&s!=0 冒泡排序法效率高 是 否 输出 输出 选择排序法效率高 请先运行两种排序方法 三、核心技术的实现说明及相应程序段
正在阅读:
冒泡法与选择法排序效率比较03-07
小学生自主学习现状调查报告04-15
盾构机始发方案04-02
感动中国刘伟观后感04-02
新员工入职自我介绍范文模板08-04
裁员的课程设计06-22
第八章运动和力复习(基础巩固)03-19
梦想给了我转专业的勇气04-20
就业指导和创业教育--教案 - 图文12-26
苏教版第10册教案04-19
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 冒泡
- 排序
- 效率
- 比较
- 选择
- 2011-2012学年第一学期十团中学教研室工作计划
- 金融全球化过程中如何加强金融业的风险防范
- 《绿山墙的安妮》读后感700字
- 中国税制历年简答题汇总
- 安全质量标准化检查及跟踪处理制度
- 创先争优活动领导点评党员情况登记表
- 成本会计 期中试卷及答案
- 格式搭心理学在高等职业本科大学英语教学中的运用 doc - 图文
- 论学校德育 - 图文
- 人事管理制度手册 - 图文
- 2017年公需科目大数据培训考试参考答案
- Parzen窗估计与KN近邻估计实验报告 - 图文
- 本科生毕业论文规定与要求
- 密宗虹身成就略记
- 中国医科大学2016年6月《护理研究》
- 联系某一具体方案,谈谈公共政策环境对公共政策的影响(1)精编版
- 北京邮电大学隆重举行叶培大先生百年诞辰追思会
- 代课教师工作总结
- 九年级化学第十二单元课题2《化学元素与人体健康》导学案
- 2016-2022年中国地毯产业发展态势及十三五发展趋势前瞻报告(目