在恒定时间O(1)中使用n个常用CREW处理器,可以在大小为n的有序数组中找到元素x吗?

时间:2013-11-02 05:27:31

标签: arrays algorithm parallel-processing complexity-theory big-o

给定一个n元素数组,如何在常数时间内使用常见的CRCW处理器找到该数组中元素x的位置?

假设x不在给定的数组中。是否有可能在恒定时间O(1)中找到x的位置?

CREW是一种处理器,可以同时读取但只能写入。

P.S。这不是一项任务。

1 个答案:

答案 0 :(得分:0)

我没有太多的并行算法背景,但我认为你可以通过拥有n个内核并执行以下操作来实现这一目标:

  • 将结果设为“未找到”
  • 让n个处理器中的每一个执行以下操作:每个处理器分配不同的索引k:如果数组的第k个元素是x,则将结果设置为k。

一旦所有处理器完成执行,结果变量(如果完全设置的话)将保存数组保持元素k的索引。每个处理器也只做O(1)工作。

希望这会有所帮助,如果这个推理无效,请告诉我!