+ 5
which is more efficient F1 or F2 ?, both give the same result, the code is C++ [Solved]
int F1 (unsigned int n) { if (n == 0) return n; int i, j; for (i = j = 1; i < 2 * n - 1; i += 2, j += i); return j; } int F2 (unsigned int n) { if (n == 0) return n; int i, j, k; for (i = j = 1; i < n; i++, j++) for (k = 0; k < n; k++, j++); return j; }
2 Réponses
+ 4
Not so sure, because the addition operation j+=i uses more processing power than j++, and there are very optimized looping structures, specially in small processors (8 bit microcontrollers). So the answer will probably depend on your target circuit. In a powerful PC probably F1, in a small processor you need to count assembly instructions cycle time ;)
+ 3
F1, it only has to run through one for loop, not multiple ones