南京邮电大学算法实验报告.doc

想预览更多内容,点击预览全文

申明敬告:

本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己完全接受本站规则且自行承担所有风险,本站不退款、不进行额外附加服务;如果您已付费下载过本站文档,您可以点击这里二次下载

文档介绍

实验报告(2013/2014学年第一学期)课程名称算法分析与设计实验名称分治策略实验时间2015年3月31日指导单位计算机学院软件工程系指导教师张怡婷学生姓名班级学号学院(系)计算机软件专业软件工程PAGE1实验报告实验名称分治策略指导教师张怡婷实验类型实验学时2实验时间2009-10-11实验目的和任务实验目的:理解分治法的算法思想,阅读实现书上已有的部分代码并完善程序,加深对分治法的算法原理及实现过程的理解。实验任务:用分治法实现一组无序序列的两路合并排序和快速排序。要求清楚合并排序及快速排序的基本原理,编程实现分别用这两种方法将输入的一组无序序列排序为有序序列后输出。实验环境(实验设备)VC++6.0三、实验原理及内容(包括操作过程、结果分析等)实验原理:分治法求解的三要素:1.问题能够按照某种方式分解成若干个规模较小的.相互独立且与原问题类型相同的子问题;2.子问题足够小时可以直接求解;3.能够将子问题的解组合成原问题的解。两路合并排序算法的基本思想是:将待排序元素平分成大小大致相同的两个子序列,然后对每个子序列分别使用递归的方法进行两路合并排序,直到子序列长度变为1,最后利用合并算法将得到的已排序好的两个子序列合并成一个有序的序列。两路合并排序算法的核心部分是将子问题的解组合成原问题解得合并操作。常用的操作是新建一个序列,序列的大小等于要合并的两个子序列的长度之和。比较两个子序列中的最小值,输出其中较小者到新建的序列中,重复此过程直到其中一个子序列为空。如果另一个子序列中还有元素未输出,则将剩余元素依次输出到新建序列中即可。最终得到一个有序序列。快速排序算法的基本思想是:(1)在待排序序列K[left:right]上选择一个基准元素(通常是最左边的元素Kleft),通过一趟分划操作将序列分成左右两个子序列,左子序列中所有元素都小于等于该基准元素,有子序列中所有元素

最近下载