排序网络
次排序算法基于计算的一种比较网络模型,可以同时执行多个比较操作
比较网络:
排序网络是总能对其他输入进行排序的比较网络
比较网络仅由线路和比较器构成
比较器是具有两个输入x和y以及两个输出x'和y'的一个装置,它执行下列函数:
x'=min(x,y); y'=max(x,y);
我们把具有n个输入的比较网络画成一个由n条水平线和垂直伸展的比较器的组合。
运行时间:从输入线路接收到其值的时刻,到所有输出线路收到其值所话费的时间
深度:
比较网络的输入线路深度为0
比较器的输出线路的深度为:max(输入线路深度)+1
比较器的深度为其输出线路的深度
比较网络的深度是它的输出线路的最大深度
排序网络是指对每个输入序列,其输出序列均为单调递增的一种比较网络
0-1原理:
0-1原理:如果对于属于集合{0,1}的每个输入值,排序网络都能正确运行,则对任意的输入值,它也能正确运行。
0-1原理使得我们可以把注意力集中于对由0和1组成的输入序列进行相应操作,一旦构造好排序网络,
并证明它能对所有的0-1序列进行排序时,运用0-1原理,来说明它能对任意值的序列进行正确的排序
双调排序网络:
要构造有效的排序网络,第一步是构造一个能对任意双调序列进行排序的比较网络
双调排序:是指序列要么先单调递增后再单调递减,或者循环移动成为先单调递增后再单调递减
半清洁器:
双调排序由一些阶段组成,其中每一个阶段称为一个半清洁器,
每个半清洁器是一个深度为1的比较网络,其中输入线i与输入线i+n/2进行比较,i=1,2····,n/2
当由0和1组成的双调序列作用于半清洁器输入时,半清洁器产生一个满足下列条件的输出序列:
较小的值位于输出的上半部,较大的值位于输出的下半部,并且两部分序列仍然是双调的,
事实上,两部分序列中至少有一个部分是清洁的——全由0或全由1组成。
双调排序器:
通过递归地连接半清洁器,就可以建立一个双调排序器
双调排序器:
通过递归地连接半清洁器,就可以建立一个双调排序器,它是一个对双调序列进行排序的网络
合并网络:
合并网络:能把两个已排序的输入序列合并为一个有序的输出序列的网络。

浙公网安备 33010602011771号