Discussion:
[問題] 關於程式的寫法的速度比較
(时间太久无法回复)
天草
2007-05-30 04:04:20 UTC
Permalink
我和我同學討論的

如果有一個判斷式

if((a==1)&&(b==2)&&(c==3)&&(d==4))
e=100;
else
e=10;



if(a==1){
if(b==2){
if(c==3){
if(d==4)
e=100;
else
e=10;
}
else
e=10;
}
else
e=10;
}
else
e=10;

有三個問題請教:
1.比技巧,哪個「看起來」比較厲害? 又或者哪個「實際上」比較厲害?
2.比速度,哪個執行起來速度較快? 或者一樣快?
3.比大小,哪個佔的記憶體空間比較大? 又或者其實沒差?

請各位前輩解惑,謝謝

(p.s. 話說比的那三樣東西...好西斯喔>///<)

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.125.203.46
godfat 真常
2007-05-30 04:38:09 UTC
Permalink
※ 引述《dragon0414 (天草)》之銘言:
: 我和我同學討論的
: 如果有一個判斷式

: 有三個問題請教:
: 1.比技巧,哪個「看起來」比較厲害? 又或者哪個「實際上」比較厲害?

第一個沒比較厲害,但第二個很蠢

: 2.比速度,哪個執行起來速度較快? 或者一樣快?

因為 short-circuit, 一樣快
http://en.wikipedia.org/wiki/Short-circuit_evaluation
短路是 C 的標準,後來 C++ 和 Java 同樣都有使用

: 3.比大小,哪個佔的記憶體空間比較大? 又或者其實沒差?

最佳化良好的話,一樣大
否則第二個大,因為 e = 10 有四份

--
Hear me exalted spirits. Hear me, be you gods or devils, ye who hold
dominion here:
I am a wizard without a home. I am a wonderer seeking refuge.

Sacrifice

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.58.12
骨頭
2007-05-30 06:04:44 UTC
Permalink
※ 引述《godfat (godfat 真常)》之銘言:
: ※ 引述《dragon0414 (天草)》之銘言:
: 第一個沒比較厲害,但第二個很蠢

習慣問題吧T^T
如果else的值都不一樣的時候,就不見得很蠢了...XD

有時候看到類似底下的code 我就會比較想要B種類的寫法,
最近在維護的code有感... (abc都是boolean)

if(a && b) {

}else if(a && b && c){

}else if(a && c ){

}else if(!a && b){

}else if(!a && c){

}
.
.
.

然後洋洋灑灑幾十個else if...這改的時候會想殺人的 -_-aa

--
 ▄▅▆▇███▇▆▅▄▃        ╰┼╯─╮ ╮       
 ◥███████████◣       ╰┼╯=│=│         
◥██████───────◣    *. ╯  ╯ ╯  物 語 .*
 ◥███████──────◣ ~ ◢◣             ◢◣
 ◥██████───────◤   ◥◤*  空白的世界.翼 *◥◤
  ◥██▁▂▃▄▅▆▇███▆▅▄▃▂▂~telnet://tony1223.no-ip.info

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.134.27.68

继续阅读narkive:
Loading...