Batcher归并网络

✍ dations ◷ 2025-11-29 13:56:44 #并发计算

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

相关

  • 栉水母门栉水母(Ctenophores),又名海胡桃,是一类两胚层动物,属辐射对称动物,现被划分为栉水母动物门(学名:Ctenophora),又名有栉动物门、栉板动物门。原和刺丝胞动物一起分在腔肠动物门,作为无
  • 高卢雄鸡高卢雄鸡(法语:Le Coq gaulois),或高卢公鸡,是法国的拟物化形象。高卢雄鸡来源于罗马帝国时代,法兰西被称为高卢(Gallia),高卢人叫Gallus,而Gallus在拉丁语另一意思是雄鸡,所以被称为
  • 口器口器(Arthropod mouthparts),位于节肢动物口两侧的器官,有摄取食物及感觉等作用。昆虫口器由头部后面的3对附肢和一部分头部结构联合组成,主要有摄食、感觉等功能。蛛形纲口器包
  • 天然自然(英文:Nature),是指不断运行演化的宇宙万物,包括生物界和非生物界两个相辅相成的体系。人类所能理解地自然现象有:生物界的基因模因、共识主动、意识行为、社会活动和生态系统
  • 2-甲基-1-戊醇2-甲基-1-戊醇(英语:2-Methyl-1-pentanol,IUPAC名:2-methylpentan-1-ol)是一种伯醇类的有机化合物,可作为溶剂和生产其它化学品的中间产物
  • 海蒂·格林海蒂·格林(英语:Hetty Green,1834年11月21日-1916年7月3日)是一名美国商人和金融投资者,被誉为“华尔街女巫”。是美国镀金时代最富有的女人,曾被《吉尼斯世界纪录大全》称为是“
  • 松田耕平松田耕平((日文)まつだ こうへい,1922年1月28日-2002年7月10日)为日本东洋工业(现称马自达)的第四任社长,祖父为该公司第二任社长松田重次郎,生父为该公司第三任社长松田恒次,长子为现
  • 克劳德·乔勒斯克劳德·乔勒斯克劳德·史丹利·乔勒斯(英语:Claude Stanley Choules,1901年3月3日-2011年5月5日),生于英格兰伍斯特郡裴肖勒镇(Pershore),于1911年移居澳洲,后在澳洲西澳大利亚州珀斯
  • 白冰 (演员)白冰(1986年5月2日-),本名陈东,后经纪公司英皇星艺取了艺名白冰。出生于陕西省西安市,西北政法大学国际法2004级专业毕业。2006年参加《梦想中国》节目后签约英皇星艺进入演艺圈,出
  • 协作版本系统CVS(英语:Concurrent Versions System,或Concurrent Versioning System)代表协作版本系统或者并发版本系统,是一种版本控制系统,方便软件的开发和用户协同工作。很多开源或者自由