2016-04-24 52 views

回答

1

除了使用了兩個獨立的迴路,原代碼中包含大量冗餘的語句。一個可能的改進是這樣的:

int tmp = 6 * h; 
for (j = 1; j <= 4; j++) { 
    a[j] = tmp; 
    b[j] = 6 + 3 * j * j; 
} 

主要優化:

  • 一環,而不是兩個
  • 刪除任務,在未來的聲明
  • 計算出不值被覆蓋取決於環路外的環路索引

您應該知道,大部分無論如何,這些優化將由編譯器完成。

+1

好的答案,弗蘭克,但他應該自己做功課,所以他學習。最好是投票結束這些問題。 –

+0

@PaulOgilvie:你錯了。 http://meta.stackexchange.com/q/147100/155739 –

+0

@PaulOgilvie:在回答問題之前,我確實猶豫了,正是因爲這個原因。但是,我希望他會從答案中學到一些東西。他仍然需要計算操作的數量,通過這樣做,必須考慮兩種實現的差異。 –