【发布时间】:2013-12-03 23:34:47
【问题描述】:
在阅读另一篇关于 for 循环优化的有趣 post 时,我注意到其中一位评论者建议使用 memoization 技术。
我挖掘了一下以了解更多信息,并找到了几个如何记忆函数的示例,例如 factorial 或 fibonacci 序列,仅举两个例子。
我可以遵循这些并理解总体思路,但我正在努力将其应用于简单的算术运算,例如原始帖子中的运算:
for (j=0; j < ARRAY_SIZE; j++) {
sum += array[j];
}
已经计算出来的部分是多少?
是否有可能,或者评论者认为它可以在这里适用?
只是有兴趣在这篇文章中学习memoization 技术,我知道还有其他方法(例如展开)可以提供显着的优化。
【问题讨论】:
-
评论者可能引用了您引用的代码由外部循环运行 200,000 次这一事实。如果这导致
array重复,那么记忆化会对其进行相当多的优化。 -
@ᴋᴇʏsᴇʀ 你证实了我的怀疑,因为没有其他人发表反驳论点,所以我会给你信用。请发布答案,我会将其标记为已接受。
-
@PortlandRunner 我添加了它。希望对您有所帮助
标签: c++ memoization