6.1划分设计技术6.2分治设计技术6.3平衡树设计技术6.4.pptVIP

  • 164
  • 0
  • 约1.08万字
  • 约 55页
  • 2018-10-16 发布于天津
  • 举报

6.1划分设计技术6.2分治设计技术6.3平衡树设计技术6.4.ppt

6.1划分设计技术6.2分治设计技术6.3平衡树设计技术6.4.ppt

1 现代密码学理论与实践之五 6.1 划分设计技术 6.2 分治设计技术 6.3 平衡树设计技术 6.4 倍增设计技术 6.5 流水线设计技术 6.1 划分设计技术 求解步骤: ① 将给定问题分成p个相互独立的长度基本的子问题; ② 用p台处理器并行求解每个子问题。 划分方法: 均匀、方根、对数技术和功能划分等 6.1.1 均匀划分技术 划分方法 n个元素A[1..n]分成p组,每组A[(i-1)n/p+1..in/p],i=1~p 示例:算法6.1 MIMD-SM模型上的PSRS排序 begin (1)均匀划分:将n个元素A[1..n]均匀划分成p段,每个pi处理 A[(i-1)n/p+1..in/p] (2)局部排序:pi调用串行排序算法对A[(i-1)n/p+1..in/p]排序 (3)选取样本:pi从其有序子序列A[(i-1)n/p+1..in/p]中选取p个样本元素 (4)样本排序:用一台处理器对p2个样本元素进行串行排序 (5)选择主元:用一台处理器从排好序的样本序列中选取p-1个主元,并 播送给其他pi (6)主元划分:pi按主元将有序段A[(i-1)n/p+1..in/p]划分成p段 (7)全局交换:各处理器将其有序段按段号交换到对应的处理器中 (8)归并排序:各处理器对接收到的元素进行归并排序 end. 6.1.2 方根划分技术 方根划分: 取每第i (i =1,2,…)个元素作为划分元素将序列分成若干段,然后分段处理之 6.1.2 方根划分技术 划分方法 n个元素A[1..n]分成A[(i-1)n^(1/2)+1..in^(1/2)],i=1~n^(1/2) 算法6.2 SIMD-CREW模型上的 Valiant归并(1975年发表) //有序组A[1..p]、B[1..q], (假设p=q), 处理器数 begin (1)方根划分: A,B分别按 ; (2)段间比较: A划分元与B划分元比较(至多 对), 确定A划分元应插入B中的区段; (3)段内比较: A划分元与B相应段内元素进行比较,并插入适当的位置; (4)递归归并: B按插入的A划分元重新分段,与A相应段(A除去原划分元) 构成了成对的段组,对每对段组递归执行(1)~(3),直至A 组为0时,递归结束; 各组仍按 分配处理器; end. 6.1 划分设计技术 6.1.1 均匀划分技术 6.1.2 方根划分技术 6.1.3 对数划分技术 6.1.4 功能划分技术 6.1.3 对数划分技术 划分方法 n个元素A[1..n]分成A[(i-1)logn+1..ilogn],i=1~n/logn 示例:PRAM-CREW上的对数划分并行归并排序 (1)归并过程: 设有序组A[1..n]和B[1..m] j[i]=rank(bilogm:A)为bilogm在A中的位序,即A中小于等于bilogm的元素个数 (2)例:A=(4,6,7,10,12,15,18,20), B=(3,9,16,21) n=8, m=4 =logm=log4=2 = j[1]=rank(blogm:A)=rank(b2:A)=rank(9:A)=3, j[2]=…=8 B0: 3, 9 B1: 16, 21 A0: 4, 6, 7 A1: 10, 12, 15, 18, 20 A和B归并化为(A0, B0)和(A1, B1)的归并 6.1 划分设计技术 6.1.1

文档评论(0)

1亿VIP精品文档

相关文档