Batcher归并网络

✍ dations ◷ 2025-12-02 13:30:04 #并发计算

Batcher排序网络是由一系列Batcher比较器(Batcher's Comparator)组成的。Batcher比较器是指在两个输入端给定输入x,y,再在两个输出端输出最大值max{x,y}和最小值min{x,y}。

比较器网络是用Batcher比较器连成的完成某一功能的网络。

所谓双调序列(Bitonic Sequence)是指由一个非严格增序列X和非严格减序列Y(其中X的最小元素正好是Y的最大元素)构成的序列,比如序列(23,10,8,3,5,7,11,78)。

定义:一个序列a1,a2,…,an是双调序列(Bitonic Sequence),如果:

输入两个已排好序的序列,对这两个序列进行归并排序,在串行算法中的时间复杂度为O(n)。在并行计算中可以用奇偶归并算法来实现的。以输入的两个4元素有序序列为A和B为例,首先将这两个序列进行逆洗牌(Unshuffle)得到两个序列:其中一个是由A,B中奇数号元素组成的序列,记作奇序列OM,另一个则是由A,B中偶数号元素组成的序列,记作偶序列序列EM。接着将OM送入(2,2)奇归并器中,将EM送入(2,2)偶归并器中。于是得到一组有序的奇序列和一组有序偶序列。最后除了奇序列一个元素之外将这两个序列进行洗牌(Shuffle)比较操作即可得到一个有序序列。

算法的递归性:一个n阶的归并器是由两个n/2阶的归并器加一个洗牌比较网络构成的。比如上面的两个(2,2)归并器和最后的洗牌比较网络就构成了一个(4,4)的归并器。

一个四阶奇偶归并的例子:假设归并前的的序列是(1,5,7,6)和(2,3,4,9),那么第一次操作就将(1,2,7,4)送入(2,2)归并器中归并,得到结果为(1,2,4,7);(5,3,6,9)送入(2,2)归并器中归并,得到结果为(3,5,6,9),接着将这两个排号序的序列进行洗牌比较:(1,3<->2,5<->4,6<->7,9)=>(1,2,3,4,5,6,7,9)。

可以证明这个算法是正确的,我们要用到高德纳(Donald Ervin Knuth)的0-1原理,我们发现,对于输入的任意两个有序的0,1序列,奇序列与偶序列正好相差0个,1个或2个0。由于奇序列的第一个元素不参与最后的洗牌比较,所以参与比较的0,1数偶只有0个或1个,所以对0,1序列一定能够得到正确的排序。故而对任意的序列,奇偶归并网络可以产生正确的排序。

双调归并网络是基于Batcher定理而构建的。Batcher定理是说将任意一个长为2n的双调序列A分为等长的两半X和Y,将X中的元素与Y中的元素一一按原序比较,即 a i {\displaystyle a_{i}} a i + n ( i n ) {\displaystyle a_{i+n}(i\leq n)} 比较,将较大者放入MAX序列,较小者放入MIN序列。则得到的MAX和MIN序列仍然是双调序列,并且MAX序列中的任意一个元素不小于MIN序列中的任意一个元素。

根据这个原理,我们可以将一个输入的n元素双调序列首先通过洗牌比较操作得到一个MAX序列和一个MIN序列,然后通过两个n/2阶双调归并器处理就可以得到一个有序序列。

这个算法也是递归的,因为n阶的双调归并器是由一个洗牌比较网络两个n/2阶的双调归并器组成的。

相关

  • 约翰·施里弗约翰·罗伯特·施里弗(英语:John Robert Schrieffer,1931年5月31日-2019年7月27日),伊利诺伊州奥克帕克人,美国物理学家。1972年,因为与约翰·巴丁、利昂·库珀联合创立了超导微观理
  • 马兰·马雷马兰·马雷(Marin Marais、1656年5月(洗礼:31日) - 1728年8月15日)是一位法国作曲家、指挥、维奥尔琴演奏家。生于巴黎南部的贫民区,父亲是见习鞋匠。幼少时期的音乐才华受到肯定,
  • 圣日耳曼昂莱城堡圣日耳曼昂莱城堡(法语:Château de Saint-Germain-en-Laye)是位于法国首都巴黎西郊的一座王宫。现在圣日耳曼昂莱城堡也是法国国立考古学博物馆(法语:Musée d'Archéologie Nat
  • 月球探测器本表尽量彻底地记录世界各国的航太工程中,有史以来以探测月球为目的而发射出的探测器的简略概况。台湾国家中山科学研究院与国家太空中心
  • 康是美药妆店康是美药妆店(英语:COSMED),简称康是美,是台湾一家连锁药妆店。截至2018年8月,已开设402家直营门市,在中国大陆亦有店铺经营。在台湾的主要竞争对手为屈臣氏。2018年康是美营业额11
  • 伊拉克土库曼斯坦人伊拉克土库曼人是土库曼人在伊拉克的分支。人口估计由50万至450万人不等。他们最早七世纪来到伊拉克,是阿拔斯王朝哈里发的伊拉克总督的马木留克,当时有1000人。之后塞尔柱帝
  • 尢部尢部,为汉字索引里为部首之一,康熙字典214个部首中的第四十三个(三划的则为第十四个)。就繁体和简体中文中,尢部归于三划部首。尢部通常是从下、左、右方均可为部字,且无其他部首
  • 第二回合我爱你编剧统筹 徐誉庭 协力编剧 毛训容、周平之、陈秋茹、谢秉勋宥胜、陈怡蓉刘丽惠、陈一俊《第二回合我爱你》(英文名:Lucky Days,意“幸运日”),最初定名为“Ctrl Z的后悔”、“幸
  • 职田法职田法是朝鲜王朝前期施行的土地制度,于1466年施行。朝鲜王朝最初土地制度是科田法,授田予两班退职后仍可保留。后来土地不足,只授田在职两班,这是为强化国家经济力的政策。十六
  • 大海鹿大海鹿(学名:),又名黑斑海兔:146,是海鹿目海鹿科海鹿属的一种。主要分布于新加坡、韩国、中国大陆、台湾。常栖息在潮间带岩礁。