我知道要找到大小加倍时n个元素附加到列表所需的商店数量,可以通过总和∑ from n=1 to log(2,n) of 2^n = 2n-1
找到。
我的问题是我如何使用求和来找到一个公式,而不是在大小上加倍,每次增长时,列表会增加2000个元素?
答案 0 :(得分:0)
因此,如果数组增加2000个元素,那么n大小的数组将增加floor(n/2000)
次。我们可能会注意到,它的最后2000个元素最多移动一次,接下来的2000个插槽(从结尾开始)移动两次,接下来的2000个插槽(从最后开始)移动三次,依此类推。所以我们有这个公式:
∑ i = 1 to floor(n/2000)[ i * 2000 ] =
2000 * (∑ i = 1 to floor(n/2000) [ i ]) =
2000 * (1 + 2 + 3 + .. + floor(n/2000)) =
2000 * (floor(n/2000)*(1 + floor(n/2000))/2)