- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于c语言的多种排序方法的实现大学毕设论文
基于C语言的多种排序方法的实现
1 引 言
1.1 课题背景
排序问题源远流长,一直是数学地重要组成部分。随着各种信息的快速更新,排序问题也走进了其他领域以及我们地日常生活。如何高效地排序一直困扰着我们。
1.2 课程设计目的
排序是数学的重要组成部分,工作量大是其存在的问题。如何高效地排序?本程序就是解决这个问题而设计。程序中,把数列储存在数组中,采用插入排序等十种排序方法对数组元素进行排序,高效地解决了排序问题。本软件开发的平台为最新的微软公司出版的市面最新系统Windows 2000,而且可以作为自身的运行平台非常广泛,包括 Windows 98/2000/XP/Vista等等。
1.3课程设计内容
本程序把对数列的排序转化为对数组元素的排序,用户可以根据自己的实际问题选择系统提供的七种排序方法的任意一种进行排序。程序通过自身的判断以及处理实现排序。程序最后输出每趟排序及初始排序结果。
2 系统分析与设计方案
2.1 系统分析
设计一个排序信息管理系统,使之能够操作实现以下功能:
1) 显示需要输入的排序长度及其各个关键字
2) 初始化输入的排序序列
3) 显示可供选择的操作菜单
4) 显示输出操作后的移动次数和比较次数
5) 显示操作后的新序列
5) 可实现循环继续操
2.2 设计思路
通过定义C语言顺序表来存储排序元素信息,构造相关函数,对输入的元素进行相应的处理。 [2]
2.3 设计方案
设计方案如图2.1所示
图2.1 设计方案
具体流程见图2.2
图2.2 程序流程图3功能设计
3.1 SqList顺序表
其中包括顺序表长度,以及顺序表。源代码如下:[1]
typedef struct
{
KeyType key; //关键字项
InfoType otherinfo; //其他数据项
}RedType;
typedef struct
{
RedType r[MaxSize+1]; //r[0]作为监视哨
int length; //顺序表长度
}SqList;
3.2 直接插入排序
直接插入排序是将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1的有序表
图3.1 直接插入排序示意图
将第i个记录的关键字r[i].key顺序地与前面记录的关键字r[i-1].key,r[i-2].key,……,r[1].key进行比较,把所有关键字大于r[i].key的记录依次后移一位,直到关键字小于或者等于r[i].key的记录r[j],直接将r[i]插入到r[j]后面,循环以上过程直到最后一个纪录也插入到合理的位置。整个排序过程是从第2个记录开始的,视第1个记录为已经排好序的集合。
3.3 冒泡排序
冒泡排序是对所有相邻的记录进行比较,若这两个元素刚好与排序结果逆序,则将这两个元素的位置进行交换。
过程描述如下图所示:
图3.2 冒泡排序第一趟的前三次比较
图3.3 冒泡排序的第一趟比较结果
(1)、将整个的待排序序列的记录序列划分为有序区和无序区,初始状态有序区为空,无序区包括所有待排序的记录。
(2)、对无序区从前向后依次将相邻记录的数据进行比较,若两结果的大小刚好与排序结果相反,则将其交换,从而始数据值大的记录向右边移动。计较完无序区的最后两个记录,一趟冒泡排序结束。无序区最后一个记录进入有序区。
(3)、重复步骤(2),直到无序区中只剩下一个记录。
3.4 快速排序
快速排序是首先选择一个轴值,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键均小于等于轴值,另一部分记录的关键字均大于等于轴值,再分别对这两部分继续进行排序,以达到整个序列有序。
过程描述路下图所示:
初始关键字序列 72 6 57 88 60 42 83 73 48 85
i j j
进行1次交换之后 48 6 57 88 60 42 83 73 85
i i j
进行2次交换之后 48 6 57 60 42 83 73 88 85
I
您可能关注的文档
- 大学毕业设计论文工业大学学生公寓施工组织方案说明书.doc
- 大学毕业设计论文工程水文学与水力计算基础设计—课程设计.doc
- 大学毕业设计论文工业废弃物复合土壤改良剂的开发实验.doc
- 大学毕业设计论文工业自动清洗机的控制系统设计课程设计.doc
- 大学毕业设计论文工资管理系统设计.doc
- 大学毕业设计论文工业场地室外综合管网、风井场地室外综合管网及工业场地和风井场地两者之间排水、消防、暖通等管网工程施工组织设计.doc
- 大学毕业设计论文工资管理信息系统-课程设计报告.doc
- 大学毕业设计论文公安机关人民警察基本级执法资格考试题库及答案.doc
- 大学毕业设计论文公共安全应急处置指挥系统维护规范(初审稿) 精品.doc
- 大学毕业设计论文公共安全应急处置指挥系统维护规范(初审稿).doc
- 基于cpld的多媒体教室中央控制系统的设计大学毕设论文.doc
- 基于cpld的多路数据采集器设计大学毕设论文.doc
- 基于ds18b20的蔬菜大棚多点测温系统设计大学毕设论文.doc
- 基于dsp的谱分析仪设计—大论文大学毕设论文.doc
- 基于eda的fpga的实验开发板的设计与程序调试-课程设计报告大学毕设论文.doc
- 基于directx的三维人体建模与运动仿真结题报告大学毕设论文.docx
- 基于flash的策略类游戏研究与设计大学毕设论文.doc
- 基于foxpro的mis系统中实现excel报表输出大学毕设论文.doc
- 基于flash的多媒体课件设计与实现—大学毕设论文.doc
- 基于fpga的多通道采样系统设计课程设计论文大学毕设论文.doc
最近下载
- 新版(高级)汽车驾驶员考试题库大全(含答案).docx
- 长沙会战幻灯片.ppt VIP
- 7.《短歌行》《归园田居(其一)》联读课件 统编版高中语文必修上册.pptx VIP
- TB 10753-2018 高速铁路隧道工程施工质量验收标准.pdf VIP
- 压型彩钢屋面板施工方案方案.pdf VIP
- 情境教学法在小学英语课堂教学中的运用.pptx VIP
- 全国生态状况调查评估技术规范——生态系统服务功能评估(HJ 1173—2021).pdf VIP
- 北师大版四年数学上册六除法《路程、时间与速度》课件.pptx VIP
- 2025年一季度专题党课讲稿讲稿:提升党性修养践行使命担当.pptx VIP
- 频率选择表面赋能多功能隐身雷达天线罩:理论、设计与应用探索.docx
文档评论(0)