为了账号安全,请及时绑定邮箱和手机立即绑定

JAVA,10万个Int值相加,怎么实现更有效率

JAVA,10万个Int值相加,怎么实现更有效率

GCT1015 2019-05-25 14:25:39
10万个int值相加,怎么实现更有效率。今天收拾面试题,看到以前被人问的这个题目。思索无果欢迎大家来讨论讨论!昨天根据fonxian的回答试试了一下,发现并没有什么区别!我的实现有问题?使用线程的算法,可能是因为线程需要额外的开销所以会慢一点。使用map的就忽略了吧,map版本改了好多次都打不到想要的效果,看来map的开销好大。分开计算和合并计算并没有什么区别,分开计算的好处根本看不出来~~~~2017-5-10感谢thomastao的提醒,我重新整理了下方法,可以看出来点门道了。我水平有限就不总结了。各位看看就好!publicstaticvoidmain(String[]args){IntSumTestt=newIntSumTest(10000000);LongstartDate1=newDate().getTime();//方法注释后的数值为执行时间(毫秒)//先用map去重,然后相乘。最后将结果相加t.mapCount();//7255825180027355//开启多个线程相加,结果记录到sum数组中。最后将sum数组相加。//t.threadCount();//5544545444//一个线程相加分10次相加,结果记录到sum数组中。最后将sum数组相加。//t.reduceCount();//4233334323//直接相加//t.count();//11101010101012131111//使用计数方法//t.countSum();//14151416121311121213LongendDate1=newDate().getTime();System.out.println(endDate1-startDate1);}publicclassIntSumTest{int[]valueNum=newint[10000000];//1000w个数publicIntSumTest(intmaxNum){Randomr=newRandom();for(inti=0;i
查看完整描述

2 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

用MapReduce的思想或者多线程解决。10w个整数map成n组(例如10组),每组只需要计算1w的数的sum,然后reduce归约,10个sum相加。
                            
查看完整回答
反对 回复 2019-05-25
  • 2 回答
  • 0 关注
  • 966 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号