【问题标题】:Sorting networks costs and delay排序网络成本和延迟
【发布时间】:2015-09-05 02:00:19
【问题描述】:

根据我阅读的内容,我无法弄清楚成本和延迟是如何计算的。

  • 成本:棒或比较交换块的数量。
  • 延迟:按顺序进行比较交换的次数。

我已经在下面发布了我的示例

【问题讨论】:

  • 作为附加说明,您所说的 costdelay 通常称为 sizedepth .

标签: sorting sorting-network


【解决方案1】:

据我所知,你的答案是正确的。

成本是排序网络中完成的比较交换总数。我相信这里是 28 岁。

延迟是必须按顺序完成的阶段数,即具有数据依赖性。在示例中,延迟为 13。

为什么我们关心差异?成本表示我们在串行实现中必须完成的工作量然而使用排序网络的好处是许多比较交换可以并行完成。当您的并行度与单个阶段中的比较交换一样多时,您可以同时计算该阶段。

在完美的并行系统中,算法的延迟将与延迟有关,而不是与成本有关。在完全串行的系统中,延迟将与成本而非延迟有关。

【讨论】:

  • 那么理解延迟是一个序列中可以进行的最大比较次数是否正确?
  • 嗯,这听起来不太对劲。假设您的排序网络由节点和阶段定义。节点是完成比较和交换操作的点。阶段是一组可以同时执行的节点。成本是节点的数量。延迟是阶段数。
  • 对我来说已经足够了。您可以将此评论添加为您的答案的一部分,希望它也会对其他人有所帮助。谢谢您的帮助!我
  • 是为每个输入计算延迟还是为“最坏情况”计算延迟?意思是,如果输入为 2 1 3 4 5 6 7,延迟是否为 1?
  • @AlexandruCimpanu 实际上,排序网络是一种现象,因为它们没有最坏情况/最佳情况的性能。输入数组的任何排列都将具有完全相同的复杂性,这是其最强大的功能之一。算法行为是提前固定的,因此性能非常可预测和可重现。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-03
  • 1970-01-01
  • 2016-10-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多