2个代码的执行时间的数目将不同

the number of execution time of 2 code will differ?

本文关键字:代码 执行时间 2个      更新时间:2023-10-16

我想知道这两段代码会执行多少次。它们都是n次,还是其中一个是n+1?

int sum=0;
for (int i = 1; i <= n; i++) 
sum = sum + i; 

int sum=0;
for (int i = 1; i <= n; ++i) 
sum = sum + i; 

有人帮我吗?

编辑Sınce我收到了很多差评。我决定说出我问这个问题的真正意图。

int sum = 0;
for (int i = 1; i <= n; ++i)
sum = sum + f1(i, n);}
int f1(int x, int n) { 
int sum = 0; 
for (int i = 1; i <= n; i++) 
sum = sum + i; 
return (x + sum); } 

这个代码片段的确切复杂性是O(n*(n+1)),我想了解为什么有(n+1)而不是O(n*n)

无论使用哪一个,程序输出都是相同的;CCD_ 1和CCD_ 2不是CCD_ 3循环中的终止条件,而是在每次迭代结束时评估的语句。

然而,请注意,++i永远不会比i++慢;因为从概念上讲,必须对后者进行对象复制。不过,一个好的编译器会优化副本。

风格要点:请缩进sum = sum + i;行;否则很难阅读。

我认为代码的复杂度是O(n^2)。n+1的循环在复杂性上并不重要。O(n+1)=O(n-1)=O。