如何在java中在更短的时间内迭代或循环10 ^ 15

时间:2014-10-18 17:04:57

标签: java

$ i需要迭代或循环大约10 ^ 15次如何减少执行时间 我试图减少int max值的时间,但我无法减少执行时间

int k=0;
for(int l = 1;l<1000000000;l++){
    for(int i=0;i<40;i++){
        if(a[i]==1){
           for(long j=x;j<=k;j++){
              if(j%(i+1)==0){
                System.out.println(k);
            }
        }
    }x++;
}
size += s.size();
k+=40;
if(size>n)break;
s.clear();
}

这里我无法循环

1 个答案:

答案 0 :(得分:0)

这可能是微优化,但您可以将最外层的for循环与其下方的for循环相结合。注意从int到long的变化。

for(int l = 1;l<1000000000;l++){
    for(int i=0;i<40;i++){
        if(a[i]==1){
           for(long j=x;j<=k;j++){
              if(j%(i+1)==0){

成为这个:

for(long l = 1;l<40000000000L;l++){
    if(a[l%40]==1){
       for(long j=x;j<=k;j++){
          if(j%(l%40+1)==0){

我还没有对此进行测量或模拟了一次性能测试。所以YMMV。