算法设计与分析_10算法设计-分治法.ppt

算法设计与分析演示稿 纪玉波制作(C) 算法设计与分析 ——分治法 * * 分治法(divide-and-conquer) 分治策略是一种用得最多的一种有效方法,它的基本思想将问题分解成若干子问题,然后求解子问题。子问题较原问题无疑是要容易些,由此得出原问题的解,就是所谓的“分而治之”的意思。分治策略还可以递归进行,即子问题仍然可以用分治策略来处理,最后的问题是非常基本而简单。下面举几个例子。 1.合并排序 合并算法排序即属于分治方法。合并(Merge)就是将两个或多个有序表合并成一个有序表,例如下图所示的两个有序表经合并运算后得到一个有序表。我们在此只用到两个有序表的合并,称为二路并〔Two-way merge)。 合并排序(Merge sort)就是利用这种合并过程进行排序,即先将n个数据看成n个长度为l的表,将相邻的表成对合并,得到长度为2的n/2个有序表;进一步再将相邻表成对会并,得到长度为4的n/4个有序表;……;如此重复做下去,直至所有数据均合并到一个长度为n的有序表为止,即完成排序。上述每一次的合并过程称为一趟〔Pass),整个排序过程叫二路合并排序。下图是二路合并排序过程的一个例子。 [7] [15] [13] [10] [4] [20] [19] [8] [7] [15] [10] [13]

文档评论(0)

1亿VIP精品文档

相关文档