我在perl工作。我的主要模块中有许多属性(大约30个)。我需要调用一个O(n)函数,其中n当前为9,并且我认为它在未来5年内不会超过20。
我的问题是:我需要调用此函数(determine_values)3次,或者我可以在new中调用它一次并隐藏对象中返回的值,并使用该对象3次。
我不确定是否更好地权衡时间复杂度(O(n))(但调用三次),或者使用额外的内存(该函数将数组引用返回最多n个项目的数组)< / p>
答案 0 :(得分:6)
你似乎非常担心你班级的一个非常简单的功能。程序应该以最清晰,最明显的方式编写,然后如果你在测试中发现它太慢了,你就开始对它进行分析,以找到代码中最好尝试获得一些速度的地方。
你过早关注自己的优化问题。首先获取您的程序,然后在必要时查看优化程序。即使你必须加快速度,我也怀疑是否会提高某些属性访问器的效率。
您没有详细解释过您的项目,但我没有看到内存使用和时间复杂性之间存在选择。如果有必要,您可以使用一些空间来缓存值,以便您再次查找它们,但复杂性不会改变。