Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/146.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 以下代码片段的算法复杂性_C++_Algorithm_Time Complexity - Fatal编程技术网

C++ 以下代码片段的算法复杂性

C++ 以下代码片段的算法复杂性,c++,algorithm,time-complexity,C++,Algorithm,Time Complexity,我们都知道对于像这样的代码片段 for(int i=0;i<n;i++){ //do something} for(int i=0;i执行//做某事的次数应为n/2次 Hence complexity = O(n/2) = O(n) (same as the previous loop) 实际上,很明显,第二个循环将花费更少的时间,因为它只执行语句数的一半。然而,随着n的增长,两个循环的时间复杂度的增长将是线性的。应该执行n/2次//do something Hence complex

我们都知道对于像这样的代码片段

for(int i=0;i<n;i++){ //do something}

for(int i=0;i执行
//做某事
的次数应为n/2次

Hence complexity = O(n/2) = O(n) (same as the previous loop)

实际上,很明显,第二个循环将花费更少的时间,因为它只执行语句数的一半。然而,随着n的增长,两个循环的时间复杂度的增长将是线性的。

应该执行n/2次
//do something

Hence complexity = O(n/2) = O(n) (same as the previous loop)
for(int i=0;i<n;i++) { /* do something */ }
实际上,很明显,第二个循环将花费更少的时间,因为它只执行语句数的一半。然而,随着n的增长,两个循环的时间复杂度的增长应为线性

for(int i=0;i<n;i++) { /* do something */ }
和上面一样,这也有复杂性O(n)。注意O(n/2)=O(n)


和上面一样,这也有复杂性O(n)。请注意,O(n/2)=O(n)。

当采用大O表示法时,我们假设n是一个正集合

N可以通过两种方式生长 1-线性 2-指数

如果将n乘以整数>1,则P>n呈指数增长。考虑代码片段

for(i=1;i<n;i=i*2){
for(i=1;i0(您给出的代码呈线性增长)

对于线性增长,时间复杂度为O(n)

对于指数增长,时间复杂度为O(logn)

让我们考虑另一个例子

for(i=0;i<n*10;i++){//has Complexity O(n)

对于(i=0;i当采用大O表示法时,我们假设n是一个正集合

N可以通过两种方式生长 1-线性 2-指数

如果将n乘以整数>1,则P>n呈指数增长。考虑代码片段

for(i=1;i<n;i=i*2){
for(i=1;i0(您给出的代码呈线性增长)

对于线性增长,时间复杂度为O(n)

对于指数增长,时间复杂度为O(logn)

让我们考虑另一个例子

for(i=0;i<n*10;i++){//has Complexity O(n)

for(i=0;其复杂性应与前面的循环相同。O(n)而不是O(n^2)据我所知,您的第一个语句是O(n),除非循环中发生了其他O(n)…根据我的说法,这两个循环的复杂性将是相同的,它将是O(n)而不是O(n^2)我已经纠正了它,抱歉弄错了。复杂性应该和前面的循环相同。O(n)不是O(n^2)据我所知,你的第一个语句是O(n),除非循环中发生了其他的O(n)…根据我的观点,这两个循环的复杂性将是相同的,它将是O(n)而不是O(n^2)。我已经纠正了它,抱歉弄错了