R 向向量中依次添加元素的复杂性

R 向向量中依次添加元素的复杂性,r,R,假设我想随后向R中的空向量添加元素。例如: a=numeric() for (j in 1:n) a[j]=j 这个操作的复杂性是什么?n^2?换句话说,R是否在每次迭代中重新分配向量a (实际上,在我的例子中,迭代次数是在循环内计算的,因此不可能预测向量的最终长度并在循环之前分配向量。)在每次迭代中重新分配向量。所以复杂性是n^2 据我所知,使用append肯定会有n^2的复杂性。Jaap,请在问题的标题处返回“R”。这个问题是针对R的!!不,问题的标签是R。所以,这就足够了。请参阅以供参考

假设我想随后向R中的空向量添加元素。例如:

a=numeric()
for (j in 1:n) a[j]=j
这个操作的复杂性是什么?n^2?换句话说,R是否在每次迭代中重新分配向量
a


(实际上,在我的例子中,迭代次数是在循环内计算的,因此不可能预测向量的最终长度并在循环之前分配向量。)

在每次迭代中重新分配向量。所以复杂性是n^2

据我所知,使用
append
肯定会有n^2的复杂性。Jaap,请在问题的标题处返回“R”。这个问题是针对R的!!不,问题的标签是R。所以,这就足够了。请参阅以供参考。另外:请阅读有关的信息以及如何给出建议。这将使其他人更容易帮助您。在您不知道向量的最终长度的情况下,您可以始终过度分配向量,然后在最后删除未使用的元素。例如,如果您希望它是500个元素,则将其指定为预期长度的两倍<代码>数字(100L)。另一种方法是,如果空间被填满,则间歇性地将大小加倍。