- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
快速排序课程设计报告——包含源代码
2011/2012学年第2学期“算法分析与设计”上机报告
学院/系 信息工程学院计算机科学系 专业 计算机科学与技术 班级 项目名称 快速排序 组长 小组成员
目录
问题描述...........................................................................................................3
算法分析...........................................................................................................3
伪代码...............................................................................................................4
演示程序设计...................................................................................................4
演示界面...........................................................................................................5
算法实现...........................................................................................................7
总结.................................................................................................................. 15
参考文献.......................................................................................................... 16
问题描述:
快速排序(quicksort)是分治(divide and conquer)法的一个典型例子。分治法就是对于一个规模为n的问题,若该问题可以容易的解决(比如说规模n较小),则直接解决,否则将其分解为k个规模较小的子问题,这些字问题相互独立且与原问题形式相同,递归地解决这些子问题,然后将各个子问题的解合并,得到原问题的解的算法设计策略。归纳起来分治法在每一层递归上由三个步骤组成:(1)划分(divide);(2)解决(conquer);(3)合并(combine)。
快速排序算法在最坏情况下的的复杂度为Θ(n2)。由于快速排序具有良好的平均性能Θ(n lb n),且在Θ(n lb n)中隐藏的常数因子较小,因此它在实际中常常是首选的排序算法。这次的任务就是以快速排序算法实现对任意数字序列的排序,并能借助GUI实现动态的演示过程。所选编程语言为JAVA。
算法分析:
快速排序算法是基于分治法的算法设计范例,它由以下三步组成:
(1)划分:将数组A[p..r]划分成两个子数组A[p..q-1]和A[q+1..r](其中之一可能为空),且数组A[p..q-1]中的每个元素值不超过数组A[q+1..r]中的每个元素值。计算下标q作为划分过程的一部分。
(2)解决:递归调用快速排序算法,对两个子数组A[p..q-1]和A[q+1..r]进行排序。
(3)合并:由于子数组中元素已被排序,无需合并操作,整个数组A[p..r]有序。
快速排序的QUICKSORT过程及PARTITION过程在伪代码中详细表述,这里直接使用。初始时,调用QUICKSORT(A, p, length[A])。算法的关键之处在于划分过程PARTITION,如果不计所用栈的空间,则快速排序所需空间为O(1)。
对快速排序算法进行时间代价分析:
最坏情况运行时间为Θ(n2),最好情况的运行时间为O(n lb n)。平均情况更类似于最好情况,关键在于要理解平衡划分是如何反映描述运行时间的递归方程的。假定划分算法总是产生9∶1的划分比例,这似乎是相当不平衡的划分。快速排序的递归方程为:T(n)≤2T(n/2)+Θ(n)。递归方程的递归树的每一层开销为cn,在深度lgn=Θ(lb n)达到边界条件开销至多为cn,递归在深度log10/9=Θ(lb n)时终止,快速排序的总开销为O(n lb n),与
您可能关注的文档
最近下载
- 《复活(节选)》课件38张高中语文选择性必修上册.pptx VIP
- 复合手术室的管理课件.pptx VIP
- 《中华人民共和国节约能源法》解读与培训课件.pptx VIP
- 今年清华大学学术大咖分享国家社科申报秘籍.doc VIP
- 2025新营销5.0营销平台时代.pdf VIP
- 排球:正面双手垫球 教案.docx VIP
- 2025年17周新模式英语1Unit1-4全套教案.pdf VIP
- RocscienceSlide岩土边坡稳定性分析操作教程(非.pdf VIP
- AWS B4.0M-00焊缝机械试验方法.pdf VIP
- GB_T50795-2012:光伏发电工程施工组织设计规范.pdf VIP
文档评论(0)