我想我已经实现了一些错误的代码.我无法弄清楚为什么我的排序(使用arrays.sort)在"并行"版本中比在非并行版本中花费更长时间(显然是将两个数组重新组合在一起,但我认为它不会添加更多的时间).如果有人可以指出我正在犯的任何错误或任何改进非并行版本的并行版本的技巧,我将不胜感激.我能够更有效地进行阵列合并,甚至可以并行进行吗?如果是这样,实施的最佳做法是什么.任何帮助将不胜感激.
import java.util.Arrays
import scala.concurrent._
import scala.collection._
trait Sorts {
def doSort(a: Array[Double]): Array[Double]
}
object Simple extends Sorts {
def doSort(a: Array[Double]) = {
Arrays.sort(a)
a
}
}
object Parallel extends Sorts {
def doSort(a: Array[Double]) = {
val newArray = new Array[Double](a.length)
val aLength = (a.length)
val aSplit = ((a.length / 2).floor).toInt
ops.par(Arrays.sort(a, 0, aSplit), Arrays.sort(a, (aSplit + 1), aLength))
def merge(w: Int, x: Int, y: Int) {
var i = w
var j = x
var k …Run Code Online (Sandbox Code Playgroud)