2016-04-24 48 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:在回答问题之前,我确实犹豫了,正是因为这个原因。但是,我希望他会从答案中学到一些东西。他仍然需要计算操作的数量,通过这样做,必须考虑两种实现的差异。 –