我想用Java创建一个程序,通过使用多线程在动态采集的数组中进行二进制搜索。那么我该如何从程序开始呢?
答案 0 :(得分:4)
二进制搜索不适合多线程/并行化。 (几乎)没有并行加速的可能性。
OTOH ...如果您只是想知道如何对已排序的元素数组进行并发二进制搜索,那么提供:
多个线程的常规二进制搜索将是线程安全的。
答案 1 :(得分:2)
不是试图使搜索本身成为多线程,而是使调用机制成为多线程并同时进行多次搜索可能会更有价值。根据您正在做的事情,您可以从Java容器中免费获取此信息(例如,每个到Servlet的HTTP请求都已获得它自己的线程,因此您无需执行任何其他操作)。
此外:“过早优化是一切罪恶的根源” - Donald Knuth
要开始,我建议保持简单,并按照示例显示此处显示的内容:http://en.wikipedia.org/wiki/Binary_search_algorithm然后找出您要优化的内容,如果有的话,并酌情继续。