Batcher归并网络

✍ dations ◷ 2025-03-07 11:24:20 #并发计算

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阶的双调归并器组成的。

相关

  • 性腺发育性腺的发育是生殖系统在胚胎发育过程中的一环,在男性会发育为睾丸,女性则为卵巢。卵巢的部分会分化为中央的髓质以及外部的生殖上皮。未成熟的卵源自于卵黄囊背侧内胚层的细胞
  • 核心抗原核心抗原指位在细菌、病毒等颗粒内部之抗原,它必须在颗粒被人体细胞分解后才显露、而后被相对应之免疫细胞辨识,暨而启动免疫机制。
  • 牛津英文字典《牛津英语词典》(英语:Oxford English Dictionary,OED)是由牛津大学出版社出版的20卷词典,截至2005年11月30日,该词典收录了301,100主词汇,字母数目达3亿5千万个。词典亦收录了157
  • 高贞北平王高贞,字仁坚(因避隋文帝讳而作仁固),渤海郡蓨县(今河北景县)人,北齐武成帝高湛第五子。高贞沉审宽恕。武成帝常说:“此儿得我凤毛。”566年五月廿三日,北齐后主高纬立太上皇帝
  • 费城铸币局费城铸币局(英语:Philadelphia Mint)是美国的铸币机构,最初是为了建立国家认同和应付商业需求而创建的。在1792年铸币法案在4月2日订立以后,美国政府随即宣布了创立美国铸币局,而
  • 叙利亚骆驼叙利亚骆驼(学名:Camelus moreli)为栖息于叙利亚已灭绝的骆驼,化石发现于地层年代约 100,000 年前叙利亚沙漠西部的 Hummal 区域(阿拉伯语:بئر_الهمل)。叙利亚骆驼的肩高可
  • 瓦伦马特山坐标:47°17′03″N 7°29′07″E / 47.28417°N 7.48528°E / 47.28417; 7.48528瓦伦马特山(Walenmatt),是瑞士的山峰,位于该国西部,由伯恩州和索洛图恩州负责管辖,属于汝拉山的一
  • 双氢配合物双氢配合物是包含完整氢分子作为配体的配位化合物。最典型的这类化合物是W(CO)3(PCy3)2(H2)。这类化合物的发现解释了金属元素催化的氢分子参与的化学反应。文献已经报道了
  • 玫瑰十字会玫瑰十字会(德语:Rosenkreuzer;英语:Rosicrucianism),是中世纪末期的一个欧洲秘传教团,以玫瑰和十字作为它的象征。该会一直保持神秘,不为外人知晓。直至17世纪初,有人以匿名在日耳曼
  • 海鲢海鲢(学名:),又名大眼海鲢、澜槽、四破,为海鲢科海鲢属下的一个种。海鲢是由原始硬骨鱼演化而来,其鱼膘有不完全的肺功能,幼鱼时很像鳗鱼。