cost 236 ms
二进制值的排序网络 - sorting network for binary values

我正在寻找最有效的二进制值排序网络。 就我而言,效率是所需的比较和交换操作的数量。 背景:排序网络使用一系列具有刚性位置的比较和交换操作对值列表进行排序。 由于严格的顺序,它们适用于硬件实现或并行化。 我有两个子问题: 如果我知道我的数据是二进制的,例如(0, 1, 1, 0, 1, 1...) , ...

最佳的9元素分类网络,可以减少到9个最佳中值网络? - Optimal 9-element sorting network that reduces to an optimal median-of-9 network?

我正在研究基于双输入最小/最大操作的九个元素的排序和中值选择网络。 Knuth, TAOCP Vol。 3 ,第2版。 状态(第226页)九元素排序网络需要至少25次比较,这转换为相同数量的SWAP()原语或50 min / max操作。 显然,通过消除冗余操作,可以将分拣网络转换为中值 ...

减少排序网络 - Reducing a Sorting Network

排序网络是 2 个输入比较器的排列,可以对 n 个元素的输入序列进行排序。 例如,这是一个用于 9 元素输入的排序网络: 每条竖线是一个2输入比较器,左边是输入序列,右边是排序好的序列。 我的问题是:如何证明如果我们删除任何有效的 n 个输入排序网络的顶线或底线,我们最终会得到一个适用于 ( ...

排序网络 - 哪些网络允许跳过比较? - Sorting Networks - which networks allow skipping a comparison?

GCC的qsort实现使用中位数为3来选择一个支点。 在此期间,3个元素使用排序网络进行排序。 3个元素的分类网络通常需要3次比较。 但是在这个特定的实现中,可以跳过最后的比较,具体取决于之前的比较: 对于n = 4...16网络(具有已知的最小最佳比较数的网络),可以做类似的 ...

如何修复这种非递归奇偶合并排序算法? - How to fix this non-recursive odd-even-merge sort algorithm?

我正在寻找非递归奇偶合并排序算法,并找到了 2 个来源: Sedgewick R 的一本书。 这个问题 两种算法是相同的,但都是错误的。 生成的排序网络不是奇偶合并排序网络。 这是具有 32 个输入的结果网络的图像。 两条水平线之间的垂直线表示将值 a[x] 与 a[y] 进行比较, ...

最佳Batcher奇偶合并网络的大小不同于2 ^ n - Optimal Batcher odd-even merge networks for sizes different than 2^n

这些天,我一直在尝试使用最少数量的比较交换单元(最大尺寸 ,而不是深度 )实现最大尺寸为32的分拣网络。 截至目前,我已经能够使用以下资源来生成我的网络: 对网络0到16进行排序:Perl的Algorithm::Networksort模块采用“最佳”算法。 不幸的是,它只提供最知名 ...

比较两对4变量并返回匹配数? - Comparing two pairs of 4 variables and returning the number of matches?

给定以下结构: 比较两个这样的结构并返回匹配的变量数(在任何位置)的绝对最快方法是什么? 例如: 我正在寻找3的结果,因为两个结构之间有三个数字匹配。 但是,考虑到以下因素: 然后我期望结果只有2,因为在两个结构之间只有两个变量匹配(尽管第一个中有两个零)。 ...

排序 10 个数字的最快方法? (数字是 32 位) - Fastest way to sort 10 numbers? (numbers are 32 bit)

我正在解决一个问题,它涉及非常快速地对 10 个数字 (int32) 进行排序。 我的应用程序需要尽可能快地对 10 个数字进行数百万次排序。 我正在对一个包含数十亿个元素的数据集进行采样,每次我需要从中挑选 10 个数字(简化)并对它们进行排序(并从排序后的 10 个元素列表中得出结论)。 目前 ...

并行化小型网络排序 - Parallelized Small Network sort

我正在进行网络排序(对于小于8的数组),并注意到所有算法都关注其允许并行操作的能力。 这是一个大小为5的数组。 我正在使用long int数组(因此每个元素的大小为8个字节)。 那么有什么简单的方法可以在C中并行化这些操作吗? 是否有任何硬件特定命令可用于实现此目的(SIMD,AS ...

VHDL中的排序网络 - Sorting network in VHDL

我正在编写一个基本程序来使用 Bose-Nelson Algorithm实现此链接网络中 N=5的排序算法。 我使用comb.vhd组件比较两个数字,我的程序的顶层实体在下面的代码中。 我用Quartus编译的时候没有问题,但是当我用modelsim模拟RTL的时候,不管输入是什么,输出总是00 ...

在修改了少量元素后重新排序向量 - Re-sort a vector after a small number of elements have been modified

如果我们有一个先前已经排序的大小为N的向量,并且用任意值替换M个元素(其中M远小于N ),是否有一种简单的方法可以以较低的成本对它们进行重新排序(即生成排序网络的深度减少)比完全排序? 例如,如果N = 10且M = 2,则输入可能是 注意:修改元素的索引是未知的(直到我们将它们与 ...

分类网络中的比较器列表 - List of Comparators in Sorting Networks

我的家庭作业文档中有一个问题,而且我很难花时间看到和理解这个问题。 问题如下: 我们可以将具有c个比较器的n输入比较网络表示为从1到n范围内的c对整数的列表。 如果两个对共有一个整数,则网络中相应比较器的顺序由列表中的对顺序确定。 给定此表示形式,描述用于确定比较网络深度的O(n ...

蝴蝶网络排序 - butterfly network in sorting

我正在研究C ++中Robert Sedwick算法中的奇数合并排序。 作为文本的一部分,作者提到了如何使用奇偶合并排序来实现排序网络中的并行排序。 在此背景下,作者提到了蝴蝶网 我的问题是什么是基本上蝴蝶网络,为什么它被称为蝴蝶。 将理解用简单示例的解释。 我用谷歌搜索了 ...

使用比较器网络对固定长度数组进行非常快速的排序 - Very fast sorting of fixed length arrays using comparator networks

我有一些性能关键代码,涉及在 C++ 中对一个非常短的固定长度数组进行排序,其中包含大约 3 到 10 个元素(参数在编译时更改)。 我突然想到,专门针对每个可能的输入大小的静态排序网络可能是一种非常有效的方法:我们进行所有必要的比较以确定我们处于哪种情况,然后进行最佳交换次数进行排序数组。 为 ...

小值n的标准分类网络 - Standard sorting networks for small values of n

我正在寻找5元素排序的排序网络实现,但是由于我找不到关于SO的良好参考,因此我想要求对所有小值n(至少n = 3)进行排序的网络到n = 6,但更高的值也将是巨大的。 一个好的答案应该至少将它们列为“交换”(按2个元素排序)操作的序列,但是从低阶排序网络的角度来看递归分解可能也很不错。 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM