|
13
|
| R.. GitHub STOP HELPING ICE · 技术社区 · 15 年前 |
|
|
1
16
从每个部分中选择一个,大概是在您的硬件上运行最快的部分,因为我们坚定地处于“恶魔优化”的领域: http://smarterrecall.com/networks.html ,转载如下: 我创建这个网站是为了列出所有可能的最佳排序网络,最多6个输入,使用matlab中的程序编写。最长的运行时间是45秒5个输入。如果你有兴趣与我联系,我可以在rpl1[at]rice[DOT]edu联系 理查德L。
所有最优的5-网络在最后一次交换中都包含“3”,因此在更少的交换中选择中间值并不像所有这些那么容易。不过,这可以通过6个比较来完成。如果你可以忽略对这个问题的抱怨,这里的代码比你需要的要多得多: Code to calculate "median of five" in C# 任何 交换,如果您希望保留所有5个值,则可能不是一个无条件交换。一个举动也许就足够了。 |
|
|
2
2
迈克尔·科迪什、卢斯·克鲁斯·菲利佩、托尔斯滕·埃勒斯、迈克·姆勒和彼得·施奈德·坎普。”对网络进行排序:到最后再返回。” 计算机与系统科学杂志 n个 =5,比较交换的最小数目为9,网络的最小深度为5。由于每个比较交换相当于两个最小/最大操作, 所需的最小/最大操作数最少为18。 Luk Sekanina,“中值电路的进化设计空间探索”。在: ,2004年3月,第240-249页,给出了表1中5输入中值选择网络所需的最小/最大操作数为10。 威廉·加斯克、韦恩·凯利和威廉·普赫。”找到n中的第i个大数表示小i,n ACM SIGACT新闻 27,第2号(1996):88-96,表1: 至少需要6次比较才能得到5的中位数。 不 n个 . 为了 n个 =5,对此类网络进行暴力搜索是可行的。
但是,当用作排序网络时,所有四个变体的深度都是6,而不是最小的5。此外,当配置为基于比较而不是最小/最大操作的中值选择网络时,所有这些都需要7个而不是最小的6个比较。 编译器资源管理器(godbolt)的编译结果示例:对五个输入使用18 min/max操作 sort median .
|
|
|
3
1
太长,无法评论。上面Falken教授的答案可以在MATLAB中按照以下几行进行验证:使用find/replacing或regex fu,编写
同样地,对于n的其他值,运行
|
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 1 年前 |
|
|
Bobby · 复合字面值总是左值吗? 1 年前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 1 年前 |