Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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
Loops 在O(n)时间内将数组中的所有元素相互添加_Loops_Math_Recursion - Fatal编程技术网

Loops 在O(n)时间内将数组中的所有元素相互添加

Loops 在O(n)时间内将数组中的所有元素相互添加,loops,math,recursion,Loops,Math,Recursion,假设一个数组由3个元素组成: A=[1,2,3] 我想知道的是,是否可以将数组中的每个元素彼此相加,使时间复杂度为O(n)?。 结果应该是 b=[(1+1),(1+2),(1+3),(2+2),(2+3),(3+3)] 不,那是O(n^2) 现在让我们看看有人证明我错了。。。更好的是,有人已经证明了我的断言是正确的——请参见下面的评论。更准确地说,一个算法的运行时复杂性就输入而言不可能严格小于输出长度就输入而言……这个算法从一组大小n生成大小2的所有子集。这些集合的计数是二项式系数(nk)

假设一个数组由3个元素组成:

 A=[1,2,3]
我想知道的是,是否可以将数组中的每个元素彼此相加,使时间复杂度为O(n)?。 结果应该是

b=[(1+1),(1+2),(1+3),(2+2),(2+3),(3+3)]
不,那是
O(n^2)


现在让我们看看有人证明我错了。。。更好的是,有人已经证明了我的断言是正确的——请参见下面的评论。

更准确地说,一个算法的运行时复杂性就输入而言不可能严格小于输出长度就输入而言……这个算法从一组大小
n
生成大小
2
的所有子集。这些集合的计数是二项式系数
(nk)
,其中
k=2
,确切地说是:
n(n-1)/2
,这证明了您的陈述是正确的。