想问下 for循环 如何减少程序运行时间

temanw 2020-09-18 09:10:40

import java.util.Scanner;

public class Source3 {

public static void main(String[] args) {

long startTime=System.currentTimeMillis();

long sum=0;


for(int i=1;i<=10000000;i++) {
sum+=i;
}
long endTime=System.currentTimeMillis();
System.out.println(sum);
System.out.println(endTime-startTime);
}



}



有什么思路能减少程序的运行时间呢
...全文
8528 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qybao 2020-09-19
  • 打赏
  • 举报
回复
除了用公式外,你可以分块处理,最后再合并。 比如分5块(当然,怎么分块看具体情况,这里只是举例) int s1=s2=s3=s4=s5=0 for(int i=0; i<=200000; i+=5) { s1+=i; s2+=(i+1); s3+=(i+2); s4+=(i+3); s5+=(i+4); } 最后合并 s1+=(s2+s3+s4+s5); 这种分而治之的方法,就可以采用多线程。
sichuanwww 2020-09-19
  • 打赏
  • 举报
回复
能用公式解决的问题非要用并行,学习可以,实际没什么意义。
闪耀星星 2020-09-19
  • 打赏
  • 举报
回复
MapReduce
八爻老骥 2020-09-18
  • 打赏
  • 举报
回复
连加么,用高斯算法啊,(1+10000000)*5000000,不就行了。
temanw 2020-09-18
  • 打赏
  • 举报
回复
a*(a+1)/2 除了可以用这个公式以外 还有别的办法吗

50,527

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧