Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 排序中的蝶形网络_Algorithm_Sorting_Sorting Network - Fatal编程技术网

Algorithm 排序中的蝶形网络

Algorithm 排序中的蝶形网络,algorithm,sorting,sorting-network,Algorithm,Sorting,Sorting Network,作为本文的一部分,作者提到了如何使用奇偶合并排序在排序网络中实现并行排序。在本文中,作者提到了蝴蝶网络 我的问题是什么基本上是蝴蝶网络,为什么它被称为蝴蝶。请用简单的例子解释 我在谷歌上搜索过,但没有找到简单的例子解释。蝴蝶网络是一种特殊的网络。分拣网络可以看作是一个抽象的网络(例如数据流网络),也可以看作是一个非常具体的电路 这些网络由输入和输出线以及一对比较器组成,比较器将输入值从一条线路由到另一条线。这是并行排序的一个例子 资料来源: 在上图中,输入位于左侧,输出位于右侧, 方形框是比较

作为本文的一部分,作者提到了如何使用奇偶合并排序在排序网络中实现并行排序。在本文中,作者提到了蝴蝶网络

我的问题是什么基本上是蝴蝶网络,为什么它被称为蝴蝶。请用简单的例子解释


我在谷歌上搜索过,但没有找到简单的例子解释。

蝴蝶网络是一种特殊的网络。分拣网络可以看作是一个抽象的网络(例如数据流网络),也可以看作是一个非常具体的电路

这些网络由输入和输出线以及一对比较器组成,比较器将输入值从一条线路由到另一条线。这是并行排序的一个例子

资料来源:

在上图中,输入位于左侧,输出位于右侧, 方形框是比较器。其思想是,您可以在每个输入端输入0到15之间的任意值,然后通过比较器将它们路由到输出端(比较器检查输入值并决定路由到另一根导线或将其保持在同一根导线上),所有0值将路由到顶部输出(000),所有1值路由到第二个输出(001)等

这个名称是IMHO从中派生出来的,例如在中显示的,这种数据流与蝴蝶交叉

资料来源:


若你们看蝴蝶网络的第一张图,你们会看到它一次又一次地重复。

。有一张蝴蝶网络图。@PetarMinchev我在寻找什么是蝴蝶网络,为什么叫蝴蝶网络。这个网站提供了一个蝴蝶网络的例子。本文更侧重于蝶形网络排序。书中非递归奇偶合并排序的实现是错误的。它会生成冗余的比较操作并忽略其他操作。有关详细信息,请参阅我的。