- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计---希尔排序,冒泡排序,快速排序资料
数据结构课程设计
设计说明书
希尔排序,冒泡排序,快速排序
学生姓名:*****
学生学号:2009070142**
指导教师:*****
所在班级:09级电信2班
成绩打分:
信息与工程学院
2011年6月25日
课程设计任务书
2010—2011学年第二学期
专业: 电子信息工程
学号:
姓名:
课程设计名称:数据结构课程设计
设计题目: 简单数据的排序
设计依据、要求及主要内容(可另加附页):
要求:
要有较好的界面,能够进行三种算法的选择。
每一种算法要求有实现的过程,即能看到运行的步骤。
对于同一组数据进行三种算排序后,应给出相应的效率评估,确定最适合的算法。
要求有良好的编程风格和注释。
指导教师(签字):
批准日期: 年 月 日摘 要
本设计采用VC作为开发工具,通过希尔排序、冒泡排序与快速排序方法来实现一系列数据结构的排序工作。三种方法思路不同,方法各异,体现了排序的多样性。通过这次课程设计,使我们了解更多的排序知识,了解课设的有关程序过程,以掌握更多的排序方法。
关键词:C语言;排序
目 录
1课题描述……………………………………………………………………………。。。1
2 逻辑设计……………………………………………………………………………2
3 详细设计………………………………………………………………………………4
4 程序代码……………………………………………………………………………6
5程序调试与测试………………………………………………………………………12
6总结……………………………………………………………………………………14
参考文献………………………………………………………………………………151 课题描述
1.1 课题的现实意义
现实学习生活中,常会遇到一些数目较大数据繁杂的数值进行排序,徒手进行排序很困难,这时候我们就希望有一个小软件来帮忙,所以便着手开发了这个对数据进行有序排序的程序,以便用于自己的学习工作。这些大大方便了我们的生活给我们更多的选择和实现方式。
这个程序可以直接输入,不需要任何转换,就可以直接输出的结果。。c语言知识在现实中得到检验!
信息时代是科技和经济发展的产物,软件产业是信息时代的产物,它在我们的生活工作中发挥着越来越大的作用,这个排序程序的设计对我们知识的掌握有很大的作用,更能方便他人,可行性很强!
1.2 软件环境
开发环境: visual c++ 6.0+Windows XP 操作系统
2逻辑设计
2.1总设计步骤
总的设计过程不是很难,但是由于在编程过程中有的粗心大意,或是外部客观条件,造成了调试很多次。但最终在老师的帮助下完成了设计。
第一、在纸上列出提纲,把具体大概的设计思路用伪代码写出。
第二、编写代码,把各个函数分别编写出来,快速排序,冒泡排序,希尔排序……。
第三、程序上机运行,查找错误。
第四、错误代码的分析。查找原因。
第五、调试。对于运行成功的代码进行测试,看是否符合题目要求。使用多组数据进行测试。直至不存在着偶然性。
第五、总结。过程当中有许多库函数的调用,使用过程中让我们对C语言函数的深刻了解。
第六、编写报告书。编写报告书的过程有些复杂,由于在实践过程当中的每一步都要用再次的实现,并用书面报告提交。但是这个充分的是我们对这个编程的理解。
2.2 三个主要函数的设计原理:
(1)快 速 排 序
基本思路:通过一次分割,将无序序列分成两部分,其中一部分的元素值均不大于后一部分的元素值。然后用同样的方法对每一部分进行分割,一直到每一个子序列的长度小于或等于1为止。
具体过程:设序列P进行分割。首先,从第一个、中间一个、最后一个元素中选出中项,设为P[k],并将P[k]赋给t,再将序列中的第一个元素移到P[k]的位置上。然后,再设两个指针i、j分别指向起始和最后位置上:(1)将i逐渐增大,与此同时比较P[i]与t的大小,直到发现P[i]t,将P[i]移到P[j]的位置上;(2)将j逐渐减小,与此同时比较P[j]与t的大小,直到发现P[j]t,将P[j]移到P[i]的位置上;直到i=j为止,这时将t移到P[i]的位置上。最后就得到了排序结果。
(2)冒 泡 排 序
目的:按要求从大到小或从小到大排序。
基本思路:对尚未排序的各元素从头到尾依次依次比较相邻的两个元素是否逆序(与欲排顺序相反),若逆序就交换这两元素,经过第一轮比
文档评论(0)