- 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;//同样是结构体的别名
1亿VIP精品文档
相关文档
最近下载
- 国家基本公共卫生服务项目制度汇集.doc
- 2023浙江中波发射管理中心下属事业单位招聘拟聘笔试参考题库(共500题)答案详解版.docx
- OTIS奥的斯XIOTIS西子奥的斯电梯ACD MR电气原理图纸XAA21310AT.pdf
- 紫外线消毒记录登记表.docx
- 期货基础知识竞赛题库及答案(130题).docx VIP
- 汽车维修质量管理体系.pdf
- 基本公共卫生服务满意度调查表.doc VIP
- 第七章组织行为学综合案例分析—西游记取经团队.ppt
- 本科毕业设计论文Application of Stratified Teaching Method in English Reading Teaching in Junior Middle Schoool.doc
- 航空服务质量研究——以南航为例.doc
文档评论(0)