使用多线程进行二进制搜索

时间:2013-10-07 03:55:28

标签: java

我想用Java创建一个程序,通过使用多线程在动态采集的数组中进行二进制搜索。那么我该如何从程序开始呢?

2 个答案:

答案 0 :(得分:4)

二进制搜索不适合多线程/并行化。 (几乎)没有并行加速的可能性。

OTOH ...如果您只是想知道如何对已排序的元素数组进行并发二进制搜索,那么提供:

  • 没有搜索线程修改数组,AND
  • 安全发布数组(关于搜索线程),

多个线程的常规二进制搜索将是线程安全的。

答案 1 :(得分:2)

不是试图使搜索本身成为多线程,而是使调用机制成为多线程并同时进行多次搜索可能会更有价值。根据您正在做的事情,您可以从Java容器中免费获取此信息(例如,每个到Servlet的HTTP请求都已获得它自己的线程,因此您无需执行任何其他操作)。

此外:“过早优化是一切罪恶的根源” - Donald Knuth

开始,我建议保持简单,并按照示例显示此处显示的内容:http://en.wikipedia.org/wiki/Binary_search_algorithm然后找出您要优化的内容,如果有的话,并酌情继续。