工具书,文集,丛书,教材,教辅
本文由侯国英贡献
ppt文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。
第三章 Divide-andDivide-and-Conquer 技术
邹权(博士) 邹权(博士) 计算机科学系
提要
3.1 3.2 3.3 3.4 Divide-and-Conquer原理 Divide-and-Conquer原理 整数乘法 矩阵乘法 Finding the closest pair of points
3.1 Divide-and-Conquer原理 Divide-and-Conquer原理
Divide-and-Conquer算法的设计 Divide-and-Conquer算法的设计 ? Divide-and-Conquer算法的分析 Divide-and-Conquer算法的分析
Divide-and-Conquer算法的设计 Divide-and-Conquer算法的设计
设计过程分为三个阶段 – Divide: 整个问题划分为多个子问题 Divide: – Conquer:求解各子问题(递归调用正设计的算法) Conquer:求解各子问题(递归调用正设计的算法) – Combine:合并子问题的解, 形成原始问题的解 Combine:合并子问题的解,
原始问题 问题分解 子问题
求解子问题
Divide
… 子问题
求解子问题
子问题
求解子问题
Conquer
子问题解
子问题解 … 子问题解 合并子解 原始问题的解
Merge
Homework
云计算、Map-Reduce、Hadoop、Mahout
Divide-and-Conquer算法的分析 Divide-and-Conquer算法的分析
分析过程
–建立递归方程 –求解
递归方程的建立方法
–设输入大小为n,T(n)为时间复杂性 设输入大小为n,T(n)为时间复杂性 –当n<c, T(n)=θ(1) n<c,
– Divide阶段的时间复杂性 Divide阶段的时间复杂性
划分问题为a个子问题。 划分问题为a个子问题。 ? 每个子问题大小为n/b。 每个子问题大小为n/b。 ? 划分时间可直接得到=D(n) 划分时间可直接得到=
– Conquer阶段的时间复杂性 Conquer阶段的时间复杂性
递归调用 ? Conquer时间= aT(n/b) 时间=
– Combine阶段的时间复杂性 Combine阶段的时间复杂性
时间可以直接得到=C(n) 时间可以直接得到=
–总之
T(n)=θ(1) if n<c ? T(n)=aT(n/b)+D(n)+C(n) otherwise T(n)=aT(n/b)+D(n)+C(n)
–求解递归方程T(n) 求解递归方程T(n)
使用第二章的方法
例1. Merge-sort算法 Merge-sort算法
9 4 8 6 T(n)=2T(n/2)+O(n) 5 T(n)=O(nlogn) T(n)=O(nlogn) 9 4 8 6 5 Merge-sort 4 5 6 8 9 Combine 1 2 3 4 5 6 7 8 9 10 Conquer 2 1 3 7 10 Divide 2 1 3 7 10 Merge-sort 1 2 3 7 10
例2. 求一个集合中的最大数算法
32
T(n)=2T(n/2)+1
29,14,15,1,6,10,32,12 29,14,15, 10,32, 29 29,14,15,1 29,14,15, 29 29,14 29, 15 15,1 15, 10 6,10
32
6,10,32,12 10,32, 32 32,12 32,
3.2 3.2 整数乘法
问题定义
输入: 位二进制整数X 输入:n位二进制整数X和Y 输出: 输出:X和Y的乘积 通常,计算X*Y时间复杂性位 时间复
dm=min(d1,d2); return d; } public static double cpair2(S) 减治策略—基本原理减治策略:在分治算法中,如果划分的某个(或者某些)子问 题与原问题的解...
[65 97] [13 76] [27] 49 65 97] [13 27 76] 27 38 49 65 76 97] 19 空间复杂度为:O(n) 时间复杂度为:O(nlog2n) 稳定 2 分治算法框架-1 ...
2007130071 柳青 深圳大学实验报告 课程名称: 课程名称: 算法设计与分析 算法设计与分析 设计与 实验项目名称: 分治算法 实验项目名称: 分治算法 -循环赛日程表的...
分治算法例题_理学_高等教育_教育专区 暂无评价0人阅读0次下载举报文档 分治算法例题_理学_高等教育_教育专区。C语言 分治算法例题...
分治算法 君主和殖民者们所成功运用的分而治之策略也可以运用到高效率的计算机算法的设 计过程中。 本章将首先介绍怎样在算法设计领域应用这一古老的策略, 然后将...
分治算法试题_理学_高等教育_教育专区。分治算法当我们求解某些问题时,由于这些问题要处理的数据相当多,或求解过程相当复杂,使得直接求解法 在时间上相当长,或者根本...
分治算法作业_工学_高等教育_教育专区。分治 算法导论 习题解: 根据分治的思想: (1) 在两个大小为你的数组 A,B 中取中位数,分别为 m, , n 所用时间为 ...
递归与分治算法_IT/计算机_专业资料。第2章 递归与分治策略 学习要点: ? ? ? ? ? ? ? ? ? ? ? 理解递归的概念。 掌握设计有效算法的分治策略。 通过下面...
分治算法_理学_高等教育_教育专区。中学信息学竞赛初赛分治算法第七章 分治算法 所谓分治就是指的分而治之,即将较大规模的问题分解成几个较小规模 的问题,通过对较...
分治算法 1 分治算法基本思想 2 典型二分法 3 二分法不相似情况 4 二分法不独立情况 5 非等分分治 分治法 1 分治法的基本思想 对于一个规模为n的问题,若该...

我要评论