排序算法比较程序课程设计.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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;//同样是结构体的别名

您可能关注的文档

文档评论(0)

yu8458925 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档