- 1、本文档共197页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(2)for k=1 to m-s do Circulates(S) end for (3)mask(s) (4)for k=m-s+1 to m do (4.1)Circulates(S) (4.2)Shuffle(MASK) end for end for end (3)算法分析 算法时间主要花费在Circulate步上。整个算法执行m遍,每遍平均执行m次Circulate操作, 所以总共需m2次操作, 即t(n)=O(lg2n)。 图4.17 Stone双调排序过程实例(n=8) 4.4 Thompson和Kung双调排序算法 4.4.1 处理器编号方式 1)行主编号 如图4.18(a)所示,令置于第j行和第k列的处理器为Pi,则行主编号满足如下规则: 图4.18 处理器编号方式 (a)行主编号;(b)洗牌行主编号;(c)蛇形行主编号 i=j·n+k,0≤i≤n2-1,0≤j,k≤n-1 (4.19) 2)蛇形行主编号 如图4.18(c)所示,令置于第j行和第k列的处理器为Pi,则蛇形行主编号满足如下规则: 图4.19 排序下界 其中i,j,k取值同式(4.19)。 3)洗牌行主编号 令Pi占据行主编号的处理器阵列中的位置P(j,k),其中0≤i≤n2-1,0≤j,k≤n-1;又令b1b2b3…bq是下标i的二进制表示,且 是洗牌之结果。如果该结果是i的二进制表示(0≤i≤n2-1),那么在图4.18(b)中,Pi将占据位置P(j,k)。 4.4.2 Thompson和Kung的观察 和Stone的观察相似,Thompson和Kung对Batcher双调排序网络作了某些观察后,提 出了在网孔连接的并行机上实现双调排序时的处理器合理的编号方式。并指出(参考图4.15):采用双调排序方法排序2k个数时,在第b0位需要k次比较交换;在第b1位需要k-1次比较交换;在第j位需要k-j次比较交换;在最高位只需一次比较交换。对于某一特定的编号方式,在第i位和第j位上各数对施行比较交换时所需移动的单位步距是不同的。对于双调排序算法,最佳的处理器编号应能使花费在比较交换步上的时间最小化。显然这种最佳方式应能使相应于b0位,b1位,…,bk位所作的选路和比较 步数依次减少。按此推断,行主编号方式不如洗牌行主编号方式。 4.4.3 Thompson和Kung的双调排序算法 (1)行主编号的网孔阵列机上的双调排序 算法 参考文献[3]分析了在行主编号的n×n的网孔阵列上实现n个数的Batcher双调排序时的时间复杂度为: 图4.20 行主编号的4×4二维网孔阵列机上的双调排序 图4.21 16个数的双调排序网络 (2)洗牌行主编号的网孔阵列机上的双调排序算法 令tM(2i)是归并在处理器0到处理器2i-1中的双调序列所需的时间,其中处理器是洗牌行主编号的。比较交换一次就需要2tR+tC个时间步,而且此问题归结为:将处理器0~2i-1-1中的数与处理器2i-1~2i-1中的数进行双调归并。可以发现后者的归并是可以并行执行的,因此有: 图4.22 洗牌行主编号的4×4 二维网孔阵列机上的双调排序 所以, 令ts(22j)是在n×n方阵上实现相应的双调排序算法所需的时间,则: 因此, 因在我们的模型中,22j=n2,所以j=lg n,上式为: 当n足够大时,ts(n2)=O(n)。 4.5 MIMD-CREW模型上的异步枚举排序算法 4.5.1 算法原理和描述 对于基于枚举比较原理的异步排序算法,为了排序n个数的序列S=(x1,…,xn),算法要生成n个进程。进程i(1≤i≤n)将xi与S中其他元素进行比较,并且使用局部变量k记下所有小于xi的元素数目。当所有的比 较都完成时,就将xi置于排序序列中的k+1位置上,因此每个进程都可能彼此独立地执行,而无通信的要求。 令X是存储在共享存储器中的长度为n的数组,开始时放入被排序的序列。当算法结束时,结果置于共享存储器中的T数组内。变量i,j,k是算法生成的每个进程的局部变量,于是算法可形式描述如下: 算法4.2 MIMD-CREW模型上的异步枚举排序算法。 输入:S=(x1,…,xn)置于共享存储器的X数组中; 第4章 并行排序与选择 4.1 Batcher归并与排序网络 定义4.1 给定n个数的序列a1,a2,…,an,找出一种置换π,它将给定的序列映射到一个非降的序列aπ(1), aπ(2),…, aπ(n) ,使得对于所有的i,满足aπ(i) ≤ aπ(i+1) ,此过程称为排序。 定义4.2 给定两个递升序列:a1≤…≤an和b1≤…≤bm,重新排序它们成为一个递升序
文档评论(0)