第三章 Divide-and-Conquer 技术.ppt
3.1 Divide-and-Conquer原理 Divide-and-Conquer算法的设计 Divide-and-Conquer算法的分析 设计过程分为三个阶段 Divide: 整个问题划分为多个子问题 Conquer:求解各子问题(递归调用正设计的算法) Combine:合并子问题的解, 形成原始问题的解 Homework 云计算、Map-Reduce、Hadoop、Mahout 分析过程 建立递归方程 求解 递归方程的建立方法 设输入大小为n,T(n)为时间复杂性 当nc, T(n)=?(1) 总之 T(n)=?(1) if nc T(n)=aT(n/b)+D(n)+C(n) otherwise 求解递归方程T(n) 使用第二章的方法 建立递归方程 T(n)=?(1) if n=1 T(n)=3T(n/2)+O(n) if n1 使用Master定理 T(n)=O(nlog3)=O(n1.59) 利用排序的算法 算法 把Q中的点排序 通过排序集合的线性扫描找出最近点对 时间复杂性 T(n)=O(nlogn) Divide-and-conquer算法 Conquer: 1. 递归地在Q1和Q2中找出最接近点对 (p1, p2)和(q1,
原创力文档

文档评论(0)