Re: [問題] 面試遇到的程式問題,現在還想不出來(MTK)
看板Prob_Solve (計算數學 Problem Solving)作者progden (習慣成自然)時間16年前 (2008/03/30 21:35)推噓4(4推 0噓 0→)留言4則, 4人參與討論串10/16 (看更多)
※ 引述《previewslave (蝦蝦蝦蝦 來玩圍棋吧)》之銘言:
: ※ 引述《previewslave (蝦蝦蝦蝦 來玩圍棋吧)》之銘言:
: : for (i=100; i--;) s+= i;
: 修正:
: for (i=101; i--;) s += i;
把迴圈展開 速度真的會變快說
int sum = 0 ;
int N = 1000000000 ;
long start,end ;
start = System.currentTimeMillis();
for(int i = 0 ; i < N ;){
sum += (i++) ;
}
end = System.currentTimeMillis();
System.out.println("test1 : (end-start) = "+(end-start));
start = System.currentTimeMillis();
for(int i = 0 ; i < N ;){
sum += (i++) ;
sum += (i++) ;
sum += (i++) ;
sum += (i++) ;
sum += (i++) ;
sum += (i++) ;
sum += (i++) ;
sum += (i++) ;
sum += (i++) ;
sum += (i++) ;
}
end = System.currentTimeMillis();
System.out.println("test2 : (end-start) = "+(end-start));
先不管sum會溢位的問題的話
輸出結果是
test1 (end-start) = 2000
test2 (end-start) = 1531
誤差大概到 +- 20 左右
使用的compiler是 java (build 1.6.0_05-b13)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.128.18.137
推
03/31 02:05, , 1F
03/31 02:05, 1F
推
03/31 23:55, , 2F
03/31 23:55, 2F
推
04/01 04:54, , 3F
04/01 04:54, 3F
推
04/04 18:26, , 4F
04/04 18:26, 4F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 10 之 16 篇):
Prob_Solve 近期熱門文章
PTT數位生活區 即時熱門文章