【发布时间】:2016-10-14 20:33:53
【问题描述】:
for (int i = 0,len=size-2; i < len; i++) {
for (int j = 1,leng = size-1; j < leng; j++) {
for (int k = 2; k < size; k++) {
if (i < j && j < k) {
sum = sum + Math.floor((a[i] + a[j] + a[k]) / (a[i] * a[j] * a[k]));
}
}
}
}
我需要这段代码至少在当前运行时间的一半内运行。这里,数组“a”是双精度类型。我正在通过阅读器类进行输入。如何实现更快的运行时间?
【问题讨论】:
-
你想用这段代码完成什么?
-
@MichaelPickett 我必须对数组的三元组进行求和。代码正在做它的工作。我只需要至少一半的运行时间。
-
在我看来,这段代码多次执行相同的操作。最值得注意的是,每个
i循环将j和k减去 1 个位置。 -
@MichaelPickett 我不明白。能详细点吗?
-
@Treycos 数组中有 N 个元素。我必须对三元组 x,y,z 求和,使得 0
标签: java performance optimization runtime