Batcher归并网络

✍ dations ◷ 2025-12-08 07:33:42 #并发计算

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

相关

  • 肌萎缩性脊髓侧索硬化症肌萎缩性脊髓侧索硬化症(英语:Amyotrophic lateral sclerosis,缩写为 ALS),也称为肌萎缩侧索硬化症,有时也称为卢·贾里格症(英语:Lou Gehrig's disease)、渐冻人症、运动神经元病,是
  • 轻子轻子(Lepton)是一种不参与强相互作用、自旋为1/2的基本粒子。电子是最为人知的一种轻子;大部分化学领域都会涉及到与电子的相互作用,原子不能没有它,所有化学性质都直接与它有关
  • Congressional Research Service国会研究处(英语:Congressional Research Service,简称:CRS),亦称国会研究服务处、国会研究服务部,隶属于美国国会图书馆立法参考服务处之下,是美国国会智库机构之一,亦是支援国会立
  • 边缘概率本文定义了表征两个或者多个随机变量概率分布特点的术语。条件概率(英语:conditional probability)就是事件A在事件B发生的条件下发生的概率。条件概率表示为P(A|B),读作“A在B发
  • KC-130JC-130大力神(Hercules,海格力斯,希腊神话中的英雄)运输机是由美国洛克希德·马丁公司(Lockheed Martin)所研发生产的中型战术运输机,是美国最成功、最长寿(1956年开始服役)和生产最多
  • 拍瀑拉族拍瀑拉(Papora、Vupuran、Bopalat、Basagar、Babusagar,亦作:巴布拉族。)为台湾原住民,平埔族群之一,词源来自大肚社人之自称Papula(音近拍瀑拉)。早期曾分布于今台中市大肚区、大甲
  • 小行星11754小型星11754(11754 Herbig),天文学临时编号2560 P-L或1994 QH是一个位在小行星带的小行星。于1960年9月24日被科内利斯·约翰内斯·万·豪敦()、汤姆·赫雷尔斯()和英格丽·万·豪
  • 双乙酸钠双乙酸钠是一种化学式为NaH(C2H3O2)2的化合物,通常用做调味剂以及抗微生物剂。双乙酸钠可以将乙酸钠进行半中和,再将溶液蒸发而得。可以视为是一种在浓缩乙酸溶液中增强酸性的
  • 吉田洁吉田洁(1964年-),出生于日本横滨市,日本作曲家。吉田洁十余岁时开始学习钢琴,1985年留学美国伯克利音乐学院,主修专业为音乐编排和电影配乐。1987年返回日本,继续各类音乐创作。曾为
  • 夫妇岩夫妇岩(或夫妇石)为日本各地一种奇岩的名称。指两块紧邻似夫妇的岩石。以三重县伊势市二见町的二见兴玉神社中的夫妇岩最为著名。