- 13
- 0
- 约1.19万字
- 约 69页
- 2016-10-26 发布于天津
- 举报
分治算法(Divideamp;ConquerAlgorithm).ppt
分治算法(Divide Conquer Algorithm) 宫秀军 天津大学计算机科学与技术学院 gongxj@ 提纲 分治法基本原理 应用 归并排序 快速排序 选择问题 复杂性的下限 最大最小问题的下限 排序算法的下限 14.1 分治法思想 分治法设计算法的思想 将问题分成(divide)多个子问题; 递归地(conquer)解决每个子问题; 将子问题的解合并(combine)成原问题的解。 分治法常常得到递归算法 Merge-Sort, Quick Sort Discrete Fourier transform (FFT). 算法复杂性分析 Master method Substitution method 例14-1 [找出伪币] 现有16个硬币,其中有一个是伪币,并且伪币重量比真币轻。试用一台天平找出这枚伪币。 两两比较,最坏情形需8次比较找出伪币。 分治法仅需4次比较找出伪币。 Compute an Problem: Compute an, where n∈N. Naive algorithm: Θ(n). Divide-and-conquer algorithm: an= an/2?an/2 if n is even; an =a(n–1)/2?a(n–1)/2?a if n is odd. Complexity T(n)=T(n/2)+Θ(1) Master方法, a=1 b=2 Case 2: logba=0,k=0 T(n)=Θ(lgn) 例14-2 [金块问题] 问题 有若干金块试用一台天平找出其中最轻和最重的金块. 等价于n个数中找出最大和最小的数. 直接求解1: 先找出最大值,然后在剩下的n-1个数中再找出最小值. 需2n-3次比较. 例14-2 直接求解2:最大最小值同时进行查找 例14-2 分治法求解 例14-2 (解续) 设c(n)为使用分治法所需要的比较次数,假设n=2k则有: c(n)=1 ,n = 2 ; c(n)=2c(n/2)+2, n ≥ 2 . 复杂性分析 Master方法给出c(n)=Θ(n). 迭代展开可得:c(n)= (3n/2)-2。 程序14-1 找出最小值和最大值的非递归程序 程序14-1 找出最小值和最大值的非递归程序 程序14-1 找出最小值和最大值的非递归程序 算法14.1分析 当n为奇数时,n=2m+1,比较m对相邻元素, 比较次数为3*m=3*(n-1)/2 =3n/2-3/2=[3n/2]-1/2-3/2 =[3n/2]-2 [ ]表示向上取整. 当n为偶数时,n=2m,比较m-1对相邻元素 比较次数为1+3*(m-1)=1+3*(n-2)/2 =1+3n/2-3 =[3n/2]-2 该算法所用比较次数最少 例14-3 [矩阵乘法] 两个n×n 阶的矩阵A与B的乘积是另一个n×n 阶矩阵C,C 的元素为: C(i, j)=∑kA(i, k)B(k, j) 矩阵乘法-分治法 2×2分块矩阵乘法 矩阵乘法-分治法 基本观点: n×n matrix = 2×2 matrix of (n/2)×(n/2) submatrices 算法 基本观点 合并分块矩阵以减少乘法次数 2×2 矩阵相乘可用7次乘法.所以仅需7次递归调用. T (n) =7T (n/2)+Θ(n2) Master 方法: logba=log27, case 1:ε= log27-2.5 T (n)= Θ(nlog7) =Θ(n2.81) 例14-3 Strassen算法 Strassen Algorithm void matmul(int *A, int *B, int *R, int n) { if (n == 1) { (*R) += (*A) * (*B); } else { matmul(A, B, R, n/4); matmul(A, B+(n/4), R+(n/4), n/4); matmul(A+2*(n/4), B, R+2*(n/4), n/4); matmul(A+2*(n/4), B+(n/4), R+3*(n/4), n/4); matmul(A+(n/4), B+2*(n/4), R, n/4); matmul(A+(n/4), B+3*(n/4), R+(n/4),
您可能关注的文档
最近下载
- 勿忘国殇吾辈自强纪念九·一八事变90周年心得体会多篇.docx VIP
- 新造船检验案例分析.pdf VIP
- 储能电站系统基础全面解析培训(68页 PPT).pptx VIP
- 初三家长会第二学期课件.pptx VIP
- 2025年滁州城市职业学院单招(计算机)测试备考题库附答案.docx VIP
- 高压脉冲方波下聚酰亚胺薄膜电老化寿命模型-材料工程.pdf VIP
- 2026高照资料分析-理论实战3+2学习.docx VIP
- 连续方波脉冲电压下温度对聚酰亚胺薄膜局部放电特性的影响.pdf VIP
- FIDIC菲迪克红皮书__(中文版).doc VIP
- 2026 新版教材七年级全一册英语单词表.docx VIP
原创力文档

文档评论(0)