我刚开始学习并行编程,正在研究二分查找。
这个算法似乎不能通过增加处理器来优化,对吗?我知道它被称为“分而治之”,但实际上是“减而治之”(来自维基百科)。
或者你能否将比较过程并行化呢?(如果X
小于array[mid]
,则从low
到mid-1
搜索;如果X
大于array[mid]
,则从mid+1
到high
搜索;否则返回mid
,即X
的索引)
还有,你可以将数组的一半交给一个处理器进行二分查找,将另一半交给另一个处理器,不过这样做是否会浪费资源呢?因为它是“减而治之”,而不是简单的“分而治之”?你有什么想法?