算法设计与分析-分治法分析
LingJie/GDUT 第4章 分治法 在封建国家中,君主为了有效地统治国家,往往使用分治的方法, 就是将国土分成几个部分,对每一部分国土,君主派一个诸侯去管理, 国君自己就不直接过问这部分国土的事情了。 国君的工作就是将一个国家分成几个部分,委派诸侯,过问诸侯工作的结果。 在计算机科学中,这种思想得到借鉴。 分治法的基本思想 分治法的基本思想 将规模为N的问题分解为k个规模较小的子问题,使这些子问题相互独立可分别求解,再将k个子问题的解合并成原问题的解.如子问题的规模仍很大,则反复分解直到问题小到可直接求解为止。 在分治法中,子问题的解法通常与原问题相同,自然导致递归过程。 一个简单的例子: N个数字求和,如何用分治法解决? 是不是分治法一定比蛮力法高效呢? 串行计算 并行计算 通过分治法解决大问题的时间等于所有解决小问题的时间? T(n)=aT(n/b)+f(n) T(n)=aT(n/b)+f(n)递推式的解法 直接使用公式 写出分治法解决n个数字相加问题的效率类型,设每次分为2个子问题 本章解决的问题: 排序 查找 大整数乘法 矩阵乘法 最近对 凸包 二叉树遍历 4.1 合并排序 思想 算法思路: 若n为1,算法终止;否则,将n个待排元素分割成k(k=2)个大致相等子集合A、B,对
原创力文档

文档评论(0)