排序系统详细设计说明书_new.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
文档编号 密级 文档版本 Total pages _20_页 1.0 排序系统 详细设计说明书 拟制 日期 评审人 日期 批准 日期 Revision Record 修订记录 日期 修订版本 修改章节 修改描述 作者 目录 1 排序系统简介 5 1.1 文档编写目的 5 1.2 文档编写背景 5 1.3 文档适用范围 5 1.4 术语和缩略语 6 1.5 排序系统时序图 6 1.6 排序系统时序图 6 1.7 排序系统活动图 7 1.8 排序系统活动图描述 7 2 排序算法设计 8 2.1 算法的数据类型 8 2.2 算法详解 8 2.3 算法性能效率比较 10 3 排序系统模块概述 11 3.1 类图 11 3.2 类的成员方法 13 4 参考文献 18 5 附录 18 排序系统简介 文档编写目的 为快速的将数据进行排序,我们设计了排序系统,来帮助用户对用户想排序的数据进行排序。 文档编写背景 本软件设计说明书是在《排序系统 软件需求规格说明书》基础上编写的,完成需求分析、软件基础模块功能、排序系统设计制作,急需为开发人员的需求提供相应系统设计说明,以供进一步的修改。也为软件开发与测试人员提供排序系统的整体框架,便于进一步设计开发。 文档适用范围 System 本系统英文简称:SS 本系统中文名称:排序系统 软件功能 参见《》 软件应用 参见《》 术语和缩略语将一组无序的记录序列调整为有序的记录序列。 系统时序图 排序系统时序图 getType是一个对象,用来获取用户选择的数据类型。同时,该对象会对选择进行判断,返回判断信息。 getData是一个对象,用来获取用户选择的排序数据。同时,该对象会对数据进行判断并返回判断信息。 sort是排序的对象,该对象负责对数据进行排序。并调用printResult()方法。 printResult()方法被sort对象调用,向用户返回排序结果。 排序系统图 系统活动图 排序系统图描述 数据类型 说明 整型(int类型) 基本数据类型,在内存中占4个字节(32位)取值范围为-231 ~ 231-1 字符串(String类型) 字符串是常量;它们的值在创建之后不能更改。 算法详解 3.2.1 希尔排序 基本思想 首先将待排序的元素分为多个子序列,使得每个子序列的元素个数相对较少,对各个子序列分别进行直接插入排序,待整个待排序序列“基本有序”后,再对所有元素进行一次直接插入排序。 性能 希尔排序比冒泡排序快5倍,比插入排序大致快2倍。排序比起慢很多。但是它相对比较简单,它适合于数据量在5000以下并且速度并不是特别重要的场合。它对于数据量较小的数列重复排序是非常好的 n-1趟,每趟操作分为比较关键码和移动记录,而比较的次数和移动记录的次数取决于待排序列按关键码的初始排列。 最好情况下:即待排序列已按关键码有序,每趟操作只需1次比较2次移动。 总比较次数:n-1 次。 总移动次数:2(n-1) 次。 最坏情况下:即第j趟操作,插入记录需要同前面的j个记录进行j次关键码比较,移动记录的次数为j+2次。 平均情况下:即第j趟操作,插入记录大约同前面的j/2个记录进行关键码比较,移动记录的次数为j/2+2次。 由此,直接插入排序的时间复杂度为O(n2)。是一个稳定的排序方法。 3.2.3 冒泡排序 基本思想 设数组中存放了N个数据元素,循环进行N-1次如下排序:第一次,依次比较相邻两个数据元素a[ i ]和a[ i-1 ]的大小,如果a[ i ]大于a[ i-1] 则交换两个数据元素,否则不交换,这样,当作完N-1次比较后数值最大的数据元素将被放置在a[N-1]中。第二次,数据元素排序的个数必须减1,即第二次只需比较N-1个数据,操作方法与第一次相同,这样当进行N-1次排序时,所有的数据都会按照从小到大的顺序全部排好。 有些待排序的数据元素序列已基本有序,这样,实际上并不需要全部执行完上述过程数据元素就已经全部排序就绪。在算法设计中设计一个flag变量,flag变量用于标记本次排序过程是否有交换动作,若没有就表明数据元素集合已全部排好序,就可提前结束排序过程。 性能 冒泡排序算法的最好情况是数据元素集合已全部排好序,这时循环N-1次,每次循环都因没有交换动作而退出,因此,冒泡排序算法最好情况的时间复杂度为O(n);最坏情况是数据元素集合全部逆序存放,这时循环N-1次,比较次数为:N*(N-1)/2 ,移动次数为:3N*(N-1)/ 2,因此最坏情况的时间复杂度为O( n2),冒泡排序的空间复杂度为:O(1)。 3.2.4 选择排序 基本思想 每一趟从待排序的数据元素中选出最小(或最大)的一个元素, ? 顺

文档评论(0)

精华文档888 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档