【问题标题】:Finding minimum of n numbers with n^2 processors in constant time在恒定时间内用 n^2 个处理器找到 n 个数字的最小值
【发布时间】:2014-03-28 05:38:47
【问题描述】:

给定一个具有 n 个数字和 n^2 个处理器的数组,找到 O(1) 时间复杂度的最小元素。我得到了一个 O(log n) 解决方案。这个可以吗?

【问题讨论】:

  • 使用 n 个进程,你会得到 O(log n) 的减少量。
  • 那么是不是可以得到恒定的时间复杂度?
  • 也许可以看看 Rabenseifner:例如优化集体归约操作citeseerx.ist.psu.edu/viewdoc/…
  • 是的,它可以在 CRCW PRAM 上以恒定的时间完成,但我怀疑你已经知道了。
  • 不...您能说明一下吗?在此先感谢:D

标签: arrays algorithm parallel-processing


【解决方案1】:

假设我们有一个大小为 n 的初始数组 R 初始化为 0。将每对 (Ai, Aj) 元素(总共 n^2)分配给所有 1 Aj。如果是这样,那么它将在 R[i] 中写入 1。所有这些都将并行完成。那么我们将在 R 中只有一个 0。结果将是 input_array[index_of_zero_in_R]。运行时间为 O(1)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-02
    • 2013-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    相关资源
    最近更新 更多