Batcher归并网络

✍ dations ◷ 2025-08-17 20:39:52 #并发计算

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

相关

  • 语言相对论语言相对论(英语:linguistic relativity),也称为萨丕尔-沃夫假说(英语:Sapir–Whorf hypothesis),由语言学家兼人类学家爱德华·萨丕尔(Edward Sapir)及其学生本杰明·李·沃夫(Benjami
  • 弗朗索瓦·韦达弗朗索瓦·韦达(法语:François Viète;拉丁语:Franciscus Vieta;1540年-1603年12月13日),16世纪法国最有影响的数学家之一。他的研究工作为近代数学的发展奠定了基础。他也是名律师
  • 辅酶Q6-dimethoxy-3-methylcyclohexa-2,5-diene-1,4-dione辅酶Q10(Coenzyme Q10,CoQ10),又称泛醌(Ubiquinone,UQ)、辅酶Q(Coenzyme Q,CoQ),商品名悠卡诺(ubidecarenone),是一种存在于所有行有氧
  • 测光表测光表是一种用来测量光的强度的仪器。在摄影中, 测光表被用来确定适当的曝光时间。在胶片感光度和快门速度已知的情况下, 测光表给出获得最佳曝光的光圈值。测光表也被用来
  • 大汶口遗址大汶口遗址位于中国山东省泰安市岱岳区大汶口镇大汶河畔,是一处新石器时代遗址,1982年被列为第二批全国重点文物保护单位。大汶口遗址于1959年首次发现,经过三次大规模考古发掘
  • 奥古斯塔斯·德摩根奥古斯塔斯·德摩根(Augustus De Morgan,1806年6月27日-1871年3月18日,英语发音.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI",
  • 联合国危险货物编号联合国危险货物编号(UN number)是一组4位数字的编号,它们可以被用来识别有商业价值的危险物质和货物(例如爆炸物或是有毒物质)。这种数字架构在国际贸易当中被广泛使用,以便于标注
  • 氧化钪氧化钪(化学式:Sc2O3),是钪最常见的氧化物。它是不溶于水的白色粉末,易溶于热酸,但经高温灼烧的氧化钪较难溶解。氧化钪可借由直接燃烧钪而得:含挥发基的钪化合物经氧化灼烧也可以
  • 83号科罗拉多州州道83号科罗拉多州州道(英语:Colorado State Highway 83,SH-83)是美国科罗拉多州中部的一条南-北走向的州级公路,全长56.50英里(90.93千米),南起科罗拉多斯普林斯北侧接21号科罗拉多州
  • 外道军团外道军团(英语:Nexus),是一个职业摔角团队,目前效力于世界娱乐摔角旗下,成立于2010年,虽然没有正式解散,不过每个成员皆已经各自活动,不再以团体身份出场。在外道军团的摔角事业中,外