Batcher归并网络

✍ dations ◷ 2025-12-03 13:54:02 #并发计算

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

相关

  • 氯化苄氯化苄(化学式:C6H5CH2Cl),又名苄基氯、苯氯甲烷、苄氯,是苯上一个氢原子被氯甲基取代后形成的化合物,也是重要的有机合成中间体。氯化苄在通常情况下为无色或微黄色有强烈刺激性
  • 蓝色蓝色是一种颜色,它是红绿蓝光的三原色中的其中一元,在这三种原色中它的波长最短(约470-440纳米)。由于空气中灰尘对日光的瑞利散射,晴天的天空是蓝色的。由于水分子中的氢-氧键对
  • 深圳艺术学校深圳艺术学校1986年由深圳市政府批准成立,1993年办中专,是深圳市唯一一所中等专业艺术学校。现有三个艺术专业,分别为音乐专业、舞蹈专业(中国舞、芭蕾舞)和美术设计专业。现分为
  • 学艺员学艺员(日语:がくげいいん)是日本的一种国家级从业资格,由文部科学省认定。根据日本博物馆法规定,在博物馆(包括美术馆、天文台、科学馆、动物园、水族馆、植物园等)从事专门职位的
  • 立领立领,又称中山领、中华立领,英语称作“官僚领”(Mandarin collar),是衬衫或夹克上的一种展开式衣领样式。这种风格来源于清朝的官僚,他们把它作为制服的一部分。沿着衣领的长度是
  • 詹姆斯·穆勒詹姆斯·穆勒(英文:James Mill,1773年4月6日-1836年6月23日),也译作詹姆斯·密尔,是一位苏格兰历史学家、经济学家、政治理论家、哲学家。他与大卫·李嘉图一同是古典经济学的创始
  • 陈重光 (1913年)陈重光(1913年12月10日-1998年2月22日),台湾银行家、实业家、政治人物,本省人,曾任台视董事长、养乐多公司董事长、宝岛商业银行(今日盛国际商业银行)董事长、中华职棒会长、台湾省
  • 傅锡祺傅锡祺(1872年9月12日-1946年8月47日),字复澄,号鹤亭,晚号澹庐老人,台湾府彰化县(今台中潭子)人,清光绪年间文武秀才,为潭子地方耆老。一生经历清领,日治,及民国时期。于台湾日治时期担
  • 托尔曼-奥本海默-沃尔科夫方程在天体物理学中,托尔曼-奥本海默-沃尔科夫方程(英语:Tolman–Oppenheimer–Volkoff equation)是在广义相对论框架下描述一个处在定态引力平衡状态下的各向同性球对称物体结构的
  • 陈祝全陈祝全 (英语:Tan Chorh Chuan, 1959年-) 是一位新加坡医学家。1959年出生于一个新加坡华人家庭, 毕业于公教初级学院,1983年毕业于新加坡国立大学医学系,毕业后进入国立大学医院