日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

JAVA,10萬個Int值相加,怎么實現更有效率

瀏覽:188日期:2023-12-09 14:35:30

問題描述

10萬個int值相加,怎么實現更有效率。今天收拾面試題,看到以前被人問的這個題目。思索無果歡迎大家來討論討論!

昨天根據fonxian的回答試試了一下,發現并沒有什么區別!我的實現有問題?使用線程的算法,可能是因為線程需要額外的開銷所以會慢一點。使用map的就忽略了吧,map版本改了好多次都打不到想要的效果,看來map的開銷好大。分開計算和合并計算并沒有什么區別,分開計算的好處根本看不出來~~~~

2017-5-10感謝thomastao 的提醒,我重新整理了下方法,可以看出來點門道了。我水平有限就不總結了。各位看看就好!

public static void main(String[] args) {IntSumTest t = new IntSumTest(10000000);Long startDate1 = new Date().getTime();//方法注釋后的數值為執行時間(毫秒)//先用map去重,然后相乘。最后將結果相加t.mapCount(); //7255 8251 8002 7355//開啟多個線程相加,結果記錄到sum數組中。最后將sum數組相加。//t.threadCount(); //5 5 4 4 5 4 5 4 4 4//一個線程相加分10次相加,結果記錄到sum數組中。最后將sum數組相加。//t.reduceCount(); //4 2 3 3 3 3 4 3 2 3//直接相加//t.count();//11 10 10 10 10 10 12 13 11 11//使用計數方法//t.countSum(); //14 15 14 16 12 13 11 12 12 13Long endDate1 = new Date().getTime();System.out.println(endDate1- startDate1 ); }

public class IntSumTest { int[] valueNum = new int[10000000];//1000w個數 public IntSumTest(int maxNum){Random r = new Random();for(int i=0;i<valueNum.length;i++){ valueNum[i] = r.nextInt(maxNum);} } /** * 直接計算 * @return */ public long count(){long sum = 0;for(int i=0;i<valueNum.length;i++){ sum+= valueNum[i];}return sum; } /** * 使用計數方法計算 * 理論上的好處在于java棧內的管理方式是所有成員變量都會記錄 * @return */ public long countSum(){long sum = 0;for(int i=0;i<valueNum.length;i++){ sum = sum( sum,valueNum[i]);}return sum; } public long sum(long sum ,int num){return sum+num; } /** * 使用數組計數,然后在各個數字相乘,得到結果 * 該方法的好處在于可以釋放大量對象 * 缺點在于,如果數字的分布范圍太大,效果就不明顯 */ public long mapCount(){long sum = 0;Map<Integer,Integer> map = new HashMap<Integer,Integer>();for(int i=0;i<valueNum.length;i++){ map.put(valueNum[i],map.get(valueNum[i])==null?0:map.get(valueNum[i])+1);}for (Map.Entry<Integer, Integer> entry : map.entrySet()) { sum+= entry.getKey()*entry.getValue();}return sum; } /** * 多線程計算,分10組計算,分別匯總結果 */ public long threadCount(){long sum = 0;long[] sumNum = new long[10];for (int i = 0; i < 10; i++) { MyThread my = new MyThread(sumNum,valueNum,i); my.run();}for (int i = 0; i < 10; i++) { sum += sumNum[i];}return sum; } /** * 分10組計算,分別匯總結果 */ public long reduceCount(){long sum = 0;long[] sumNum = new long[10];for (int i = 0; i < 10; i++) { int temp = i*10000; long max = temp+10000; for (int j = temp; j < max; j++) {sumNum[i]+= valueNum[j]; }}for (int i = 0; i < 10; i++) { sum += sumNum[i];}return sum; }}

問題解答

回答1:

用MapReduce的思想或者多線程解決。10w個整數map成n組(例如10組),每組只需要計算1w的數的sum,然后reduce歸約,10個sum相加。

回答2:

一般來說先肉眼看有沒有規律,有規律了用公式算,沒規律了就老老實實的一個一個加吧。。。

標簽: java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
91精品国产自产精品男人的天堂 | 伊人久久大香伊蕉在人线观看热v| 日韩av首页| 亚洲欧洲美洲av| 日本高清不卡一区二区三区视频| 国产精品字幕| 亚洲免费精品| 中文字幕一区二区三区四区久久| 蜜臀久久久99精品久久久久久| 婷婷综合亚洲| 日韩亚洲国产欧美| 亚洲资源网站| 国产精品亚洲欧美一级在线| 91亚洲人成网污www| 美女久久久久| 综合五月婷婷| 国产精品白浆| 成人日韩av| 999精品一区| 国产偷自视频区视频一区二区| 久久99伊人| 欧美亚洲一区二区三区| 久久精品网址| 亚洲精品在线影院| 欧美91福利在线观看| 在线综合欧美| 日韩精品第二页| 精品一区二区三区中文字幕视频| 亚洲精品**中文毛片| 黄色免费成人| 日本天堂一区| 国产精品巨作av| 在线天堂资源www在线污| 亚洲国内精品| 无码日韩精品一区二区免费| 国产精品伦一区二区| 色天使综合视频| 亚洲久久视频| 麻豆传媒一区二区三区| 日韩在线综合| 中文字幕亚洲影视| av中文字幕在线观看第一页| 麻豆91精品| 麻豆精品久久| 国产精品试看| 精品国产成人| 首页国产欧美日韩丝袜| 麻豆精品视频在线观看| 欧美在线亚洲| 欧美aaaaaa午夜精品| 五月天久久网站| 国产精品红桃| 夜夜嗨网站十八久久| 国产日韩欧美| 美女毛片一区二区三区四区| 日韩av资源网| 在线视频观看日韩| 国产劲爆久久| 美女日韩在线中文字幕| 国产一区二区三区四区大秀| 美女久久一区| 日韩毛片视频| 欧美日韩 国产精品| 亚洲国产成人精品女人| 麻豆国产精品一区二区三区| 久久xxxx| 日本一区二区免费高清| 视频精品一区| 国产综合视频| 美女久久久久久 | 日韩网站中文字幕| 国产精品一区二区中文字幕| 最新亚洲一区| 成人小电影网站| 国产欧美日韩精品一区二区三区| 99视频精品| 久久精品青草| 国产在线观看91一区二区三区| 亚洲乱亚洲高清| 五月天激情综合网| 蜜臀国产一区| 国产精品视频一区二区三区综合| 免费日本视频一区| 日本精品在线中文字幕| 国产精品高清一区二区| 少妇精品在线| 狠狠久久婷婷| 亚洲成人av观看| 国产在线观看91一区二区三区| 欧美日韩亚洲三区| 蜜桃伊人久久| 欧美不卡在线| 色黄视频在线观看| 精品国产一区二区三区av片| 91成人在线网站| 蜜臀av一区二区在线免费观看| 亚洲电影有码| 国产成人a视频高清在线观看| 日本不卡的三区四区五区| 欧美日韩国产欧| 99成人超碰| 欧美国产小视频| 精品国产亚洲日本| 国产精品久久国产愉拍| 国产精品永久| 日韩国产欧美三级| 日韩高清在线不卡| 日韩在线观看中文字幕| 免费的成人av| 视频一区二区三区入口| 99视频一区| 在线视频日韩| 美女精品在线观看| 亚洲综合欧美| 久久成人精品| 在线观看一区| 午夜电影一区| 日韩精品欧美大片| 日韩中文字幕视频网| 亚洲三级精品| 日本va欧美va瓶| 青青草国产成人99久久| 日本va欧美va精品发布| 91精品国产自产在线丝袜啪| 日韩一区精品| 亚州av日韩av| 奇米亚洲欧美| 欧美日韩91| 亚洲精品伊人| 日本不卡视频在线| 欧美日韩午夜电影网| 日韩中文字幕| 91午夜精品| 国产毛片精品久久| 久久成人福利| 国产精品国产一区| 三级在线看中文字幕完整版| 久久国产亚洲精品| 午夜国产一区二区| 亚洲免费中文| 日韩欧美精品一区二区综合视频| 日韩不卡一二三区| 国产高清视频一区二区| 成人在线免费观看91| 国产一区二区精品久| 欧美精选视频一区二区| 不卡在线一区二区| 丝袜亚洲精品中文字幕一区| 中文字幕日韩亚洲| 国产调教一区二区三区| 欧美激情91| 午夜影院一区| 欧美专区在线| 欧美一区二区三区久久| 久久精品国产在热久久| 99精品在线免费在线观看| 国产一区成人| 日本中文字幕不卡| 麻豆国产欧美一区二区三区| 国产一区二区三区四区五区| 久久精品国产68国产精品亚洲| 久久亚洲视频| 国产精品任我爽爆在线播放 | 国产日韩一区二区三免费高清 | 麻豆精品视频在线观看| 999国产精品视频| 亚洲精品观看| 国产66精品| 国产精品毛片在线看| 国产日韩在线观看视频| 激情亚洲影院在线观看| 久久亚洲美女| 麻豆成人91精品二区三区| 久久久夜精品| 亚洲精品福利| 91亚洲国产| 午夜天堂精品久久久久| 岛国av免费在线观看| 丝袜a∨在线一区二区三区不卡| 久久99偷拍| 在线 亚洲欧美在线综合一区| 欧美午夜三级| 激情丁香综合| 国产精品极品在线观看| 视频二区不卡| 亚洲欧洲免费| 免费高潮视频95在线观看网站| 综合激情网...| 亚洲日本网址| 青青草国产成人99久久| 欧美日韩精品一区二区视频| 99成人在线视频| 国产粉嫩在线观看| 日本不卡中文字幕| 精品亚洲美女网站| 日韩一二三区在线观看| 青青久久av| 国产精品乱战久久久| 亚洲视频二区| 久久久精品五月天|