Java快速排序.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文档。上传文档
查看更多
Java快速排序

课程设计论文 设计题目:Java设计快速排序类 学生姓名: 岳强 学号 : 1400130180 指导教师: 王成强 专业名称: 测绘工程 所在院系: 矿业学院 摘 要 排序是计算机程序设计中的一种重要操作,排序问题是对科学和工程计算的研究和实践影响最大的问题之一[1],也是许多专家、学者深入探讨的课题之一排序的方法有很多种,例如常见的有冒泡排序,选择排序(这两个复杂度是一样的,都是O(n^2)),希尔排序是目前效率最高的(复杂度为O(nlgn)),另外还有插入排序(希尔排序就是在此基础上改进的)快速排序归并排序基数排序等其中快速排序是对冒泡排序的一种改进方法, 是目前所有排序方法中排序速度最快的一种,也是最流行、最实用的 目 录 摘 要 I 第1章概要设计 1 1.1查找资料 1 1.2选题 1 1.3快速排序的思想 2 1.3.1分治算法 2 1.3.2举例分析 3 1.3.4总体思路的设计 5 1.4明确任务与目的 5 1.5本章小结 5 第2章程序整体设计说明 6 2.1程序中所用到的变量 6 2.2程序部分源代码及注释 6 第3章程序运行效果: 9 第4章设计中遇到的重点及难点 11 4.1设计中遇到的重点 11 4.2设计中遇到的难点 11 第5章本次设计存在不足与改良方案 11 5.1本次设计中存在的不足 11 5.2本次设计的改良方案 12 5.3本章小结 12 感想及总结 13 参考文献 14 附录一 16 源程序 16 第1章概要设计 1.1查找资料 21世纪,随着社会经济的迅速发展和科学技术的全面进步,人类社会已进入信息和网络时代。计算机正以其前所未有的惊人速度向前发展,新的研究成果、。为了便于对大量信息的处理,运用计算机软件实现自动管理成为了必然的趋势。快速排序是基於“分治思想[1]”的,把問題的規模遞迴的變小,然後依次解決子問題,自後得到原問題的解。其实,“排序问题”早已有了一个很长的历史,人们从很早就已经开始进行快速排序的改进和优化了,在人类不断探索不断进步的过程中快速排序的优势越来越明显,计算速度越来越快,只有高效的排序方法才能使计算机管理活动更加便捷,并根据排序的结果进一步研究进步,才能更好适应社会快速发展的要求。 1.2选题 快速排序是 1962 年 C .A .R .Hoare 提出的[ 1] ,尽管在最坏的情况下其时间复杂性为 O(n2),但其平均性能非常好,平均时间复杂性为 O(nlog n ),且记号 O(nlogn 中隐含的系数很小,约为 1 .386[ 2] ,由于其所具有的较好平均性能, 快速排序仍是排序算法中最佳的实用算法。快速排序属比较排序类,而比较排序类算法的时间复杂性下界为 log n ! ≈ nlog n -1 .44n因此 ,快速排序的平均性能在渐近意义下已是最优 分治 顾名思义,分治,可理解为分而治之。就是把原问题(递归地)分解为多个子问题(一般是和原问题本质相同的问题,只是规模上的缩小,,解决这些子问题,合并其结果,获得原问题的解。简单的说就是“大事化小” 把复杂的问题分为多个简单问题,解决了这些简单问题,原问题也就随之解决了。 如何分治 从上面的分析中可知道,用分治的思想解决问题的步骤大致为: 分解(Divide):将原问题分为一系列子问题 解决(Conquer):递归的解决子问题。如果子问题足够小,直接解决子问题 合并(Combine):将子问题的结果合并为原问题的 借助下图,可更清晰的了解分治的思想: 9 12 1 15 4 8 63 15 7 20 9 12 1 15 4 8 63 15 7 20 9 7 1 15 4 8 63 15 12 20 9 7 1 8 4 15 63 15 12 20 7 1 8 4 9 15 63 15 12 20 (b)排序的全过程 9 12 1 15 4 8 63 15 7 20 {7 1 8 4} 9 {15 63 15 12 20} 4 1 8 7 9 1 4 8 7 9 1 4 7 8 9 结束 15 12 15 63 20 12 15 15 63 20 12 15 15 20 63 结束 1 4 7 8 9 12 12 15 20 63 1.3.3快速排序的时间复杂度及空间复杂度 快速排序是冒泡排序的改进版,是目前已知的最快的排序方法。已知一组无序数据 a[1]、a[2]、……a[n],需将其按升序排列。首先任取数据a[x]作为基准。比较a[x]与其它数据并排序,使a[x]排在数据的第k位,并且使a[1]~a[k-1]中的

文档评论(0)

haihang2017 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档