- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
16 -
《操作系统》
课程设计报告
课程设计报告
题 目: 排序算法比较程序
班 级:
学 号:
作者姓名:
指导教师:
目 录
TOC \o "1-3" \h \z \u 1. 设计题目与要求 - 2 -
1.1实验目的 - 2 -
1.2设计要求 - 2 -
1.3 初始条件 - 2 -
2. 总体设计思想及过程及相关知识 - 2 -
2.1总体设计思想及过程 - 2 -
2.2开发环境与工具 - 3 -
3. 程序各模块流程图 - 4 -
3.1 主程序模块 - 4 -
3.2 冒泡排序模块 - 5 -
3.3 选择排序模块 - 6 -
4.源程序代码 - 6 -
6.课程总结 - 14 -
7.参考文献 - 14 -
设计题目与要求
1.1实验目的
通过用不同的算法实现排序问题,使我们深入了解和掌握同一问题可用不同算法解决,从而明白一个算法的质量优劣将影响到算法乃至整个程序的效率。
1.2设计要求
开发一款排序算法,由用户输入长度可变的内容:要求容错检查:存在字母则做字符排序,输入均为数字则按值排序
提供两种以上的排序方法供用户选择
排序并显示最终结果及执行时间
1.3 初始条件
(1)操作系统:windows
(2)程序设计语言: C、C++ (两种语言的结合,是为了简化代码的编写)
总体设计思想及过程及相关知识
2.1总体设计思想及过程
冒泡排序:
1. 基本思想: 两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据元素为止。2. 排序过程: 依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。选择排序:
1. 基本思想: 每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
2.排序过程:
第一趟排序在所有待排序的n个记录中选出关键字最小的记录,将它与数据表中的第一个记录交换位置,使关键字最小的记录处于数据表的最前端;第二趟在剩下的n-1个记录中再选出关键字最小的记录,将其与数据表中的第二个记录交换位置,使关键字次小的记录处于数据表的第二个位置;重复这样的操作,依次选出数据表中关键字第三小、第四小…的元素,将它们分别换到数据表的第三、第四…个位置上。排序共进行n-1趟,最终可实现数据表的升序排列。
2.2开发环境与工具
系统平台:windows环境
实现语言:C\C++
开发工具:VC++6.0
程序各模块流程图
3.1 主程序模块
3.2 冒泡排序模块
3.3 选择排序模块
4.源程序代码
实验要求:
开发一款排序算法,由用户输入长度可变的内容:要求容错检查:存在字母则做字符排序,输入均为数字则按值排序
提供两种以上的排序方法供用户选择
排序并显示最终结果及执行时间
#include<iostream>
#include<stdlib.h>
#include<time.h>
#define Max 100
using namespace std;
typedef struct//定义一个结构体,保存key
{
int key;
}Datatype;//结构体的别名
typedef struct//定义一个结构体,保存length。character
{
Datatype r[Max+1];
int length;
int character;
}Sqlist,*Psqlist;//结构体的别名(主要好处是:每次声明结构体时只要用Sqlist,*Psqlist去声明就可以了,节省代码)
typedef struct//定义一个结构体
{
char d[Max+1];
int length;
}List,*Plist;//同样是结构体的别名
您可能关注的文档
- TMS320C5402外文文献及译文.doc
- 打孔机生产效能的提高--数学建模论文.doc
- 杭州富阳精密仪器厂组织架构与职位分析.doc
- 基于电源调制技术的数据、语言综合智能呼叫系统.doc
- 酒店宴会部服务质量问题研究---以开封开元名都大酒店为例.doc
- 论出口对中国经济增长的贡献.doc
- 某市土地矿权交易市场信息平台(软件部分)建设项目解决方案.docx
- 气流输送系统的设计开题报告.doc
- 全自动书本打包机的推书机构设计开题报告.doc
- 优衣库的营销策略和分析.doc
- 2024年山东德州夏津县融媒体中心招聘4人历年高频考题难、易错点模拟试题(共500题)附带答案详解.docx
- 2024年山东济南历城区卫生健康局所属事业单位招聘50人历年高频考题难、易错点模拟试题(共500题)附带答案详解.docx
- 2024江苏徐州锡沂高新技术产业开发区招聘50人历年高频难、易点(行政职业能力测验共200题含答案解.docx
- 2024年山东德州职业技术学院招聘49人历年高频考题难、易错点模拟试题(共500题)附带答案详解.docx
- 2024年山东德州高级师范学校招聘工作人员12人高频考题难、易错点模拟试题(共500题)附带答案详解.docx
- 2023年12月恩施巴东县“才聚荆楚·智汇恩施”第二次专项事业单位工作人员7名笔试近6年高频考题难、易错点荟萃答案带详解附后.docx
- 2023年12月广东广州市黄埔区机关事务管理局招考聘用政府雇员笔试近6年高频考题难、易错点荟萃答案带详解附后.docx
- 2023年12月广西马山县纪委监委机关面向社会公开招考基层廉洁监督员及防贫监测员笔试近6年高频考题难、易错点荟萃答案带详解附后.docx
- 2023年12月广东广州市增城区招考聘用教师(上海设点)92人笔试近6年高频考题难、易错点荟萃答案带详解附后.docx
- 2023年12月广东省茂名市电白区赴高校现场公开招聘62名教师314笔试近6年高频考题难、易错点荟萃答案带详解附后.docx
文档评论(0)