再次迭代数组或携带额外的变量?

时间:2012-02-08 09:19:12

标签: performance

假设您有一个数组,并且想要迭代它,将每个等于某个值的元素更改为1,将其他所有元素更改为0.您还需要知道1和0的数量。结果数组,在另一个时间点。

这样做有什么好办法?

在第一次迭代数组时计算1的数量,并将该数字保存在变量中,直到您真正需要它为止?或者,当你需要1的数量时,请稍后加上(array_with_0s_and_1s)。

一种方式比另一种更有效吗?在我看来,做和将再次迭代数组并且速度慢两倍,而第一次计算1的数量只会看起来不那么优雅,而且你将需要携带一个额外的变量。

2 个答案:

答案 0 :(得分:1)

持有变量的迭代速度会慢一些,但是如果数组可以在你的脚下改变,那么它可以保证给出正确的答案(变量可能已经过时)。

答案 1 :(得分:1)

如果它是一个小数组,差异应该可以忽略不计,所以做任何事情会导致代码具有更好的可读性/可维护性/其他可编程性。

如果第二次迭代数组导致明显且有问题的减速,则携带额外的变量。

10次中有9次,它没有什么区别,所以在优化过程中采用良好的编码协议。

相关问题