看板 Programming 關於我們 聯絡資訊
for(i=102;i-=2;) { s += i+i-1; } 用一半的loop會比較快嗎@@? ※ 引述《runtime (結果咧)》之銘言: : ※ 引述《asleepme (冬天了)》之銘言: : : 作者: asleepme (冬天了) 看板: Tech_Job : : 標題: [問題] 面試遇到的程式問題,現在還想不出來... : : 時間: Sun Dec 30 13:42:09 2007 : : 是當面問的 : : 不過他當初是這樣講的: : : 有一個for迴圈,從0加到100 : : 可是我覺得他不夠快,要怎樣才能讓他更快 : : for( i=0; i<=100; i++) : : s=s+i; : for( i=0; i<101; i++) : s=s+i; : 多一個等於好像比較慢 (印象中 XD) : : 不可以用數學公式 : : 請忽略宣告或初始化的問題,我想不是重點 : : 因為我當初把i=0改成i=1的時候他只是無言的笑了笑 : : 請指點 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.174.72.50
SILee:其實我覺得他本來的用意就是要問unrolling 61.59.105.115 01/05 03:57
SILee:結果大家都去想一些只能快兩三個cycle的方法 61.59.105.115 01/05 03:57
oohay:用一半loop卻每次做兩倍計算,一樣啦 61.231.19.47 01/05 09:16
MasterChang:題目就講不能用公式,本是要考的就是 203.67.207.240 01/05 10:36
MasterChang:增加迴圈運作的效能,不是0加到100。 203.67.207.240 01/05 10:36
MasterChang:這種問題有容易看出來應試者到底有沒 203.67.207.240 01/05 10:37
MasterChang:有搞懂要問什麼。 203.67.207.240 01/05 10:37
MasterChang:顯然大部分的人還是卡在0加到100的無 203.67.207.240 01/05 10:38
MasterChang:限迴圈迷思之中,這問題果然是好問題. 203.67.207.240 01/05 10:38
WPC001:to oohay,只用一半的loop但用兩倍的運算 59.117.165.183 01/05 12:50
WPC001:還是會比較快, 因為if的次數減少了 59.117.165.183 01/05 12:50
oohay:我倒認為問題不在搞不搞懂要問什麼218.160.115.141 01/05 15:08
oohay:問就問,答就答,答者用不著揣測問者心態218.160.115.141 01/05 15:09
danielguo:改 ++i, += 經過編譯時間完全一樣 220.135.50.147 01/05 20:48
danielguo:改 for 的判斷式, 在開最佳化後幾乎一樣 220.135.50.147 01/05 20:49
danielguo:這題目出得不好,應該問"真正"有哪些方法 220.135.50.147 01/05 20:49
danielguo:可以增進效能, 而不是要看編譯後的 asm 220.135.50.147 01/05 20:51
danielguo:比指令要用幾個 cycle 的東西.. 220.135.50.147 01/05 20:51
danielguo:這些東西實際上根本不能增加多少效能呀 220.135.50.147 01/05 20:52
danielguo:這麼基本能最佳化的東西, 編譯器的作者 220.135.50.147 01/05 21:03
danielguo:能想到的早就通通想到了 220.135.50.147 01/05 21:03
Ross0916:大推樓上的 XDDD 140.112.5.10 01/05 22:03
oohay:面試題目的"好",只要能挑出正確的員工即可 59.117.134.213 01/06 00:10
jeunder:我完全不認為這是個好題目. 61.64.225.27 01/07 02:35
Lordaeron:loop 0加到100 可以考什麼效能, 我看不 61.229.153.118 01/23 14:43
Lordaeron:懂呢, 請MasterChang 大師講解一下吧. 61.229.153.118 01/23 14:44