Time complexity 相同计算的不同大O符号(破解编码面试)

Time complexity 相同计算的不同大O符号(破解编码面试),time-complexity,big-o,Time Complexity,Big O,在《编码访谈》第6版第6页中,插入的摊销时间解释如下: 当我们插入元素时,当数组的大小是2的幂时,我们会将容量增加一倍。在X元素之后,我们在 数组大小1,2,4,8,16,十, 加倍分别需要1,2,4,8,16,32,64,X 副本。1+2+4+8+16+之和是多少X 如果你从左到右读这个和,它从1开始,加倍直到 如果你从右向左读,它是从X开始的 直到它达到1 那么X+X/2+X/4+之和是多少1.这大约是2倍。 因此,X次插入需要O(2X)的时间。各项目的摊销时间 插入是O(1) 而对于这个代

在《编码访谈》第6版第6页中,插入的摊销时间解释如下:

当我们插入元素时,当数组的大小是2的幂时,我们会将容量增加一倍。在X元素之后,我们在 数组大小1,2,4,8,16,十,

加倍分别需要1,2,4,8,16,32,64,X 副本。1+2+4+8+16+之和是多少X

如果你从左到右读这个和,它从1开始,加倍直到 如果你从右向左读,它是从X开始的 直到它达到1

那么X+X/2+X/4+之和是多少1.这大约是2倍。 因此,X次插入需要O(2X)的时间。各项目的摊销时间 插入是O(1)

而对于这个代码片段(递归算法), `

intf(intn){

如果(n)p>因为在第二种情况下,n是树的深度,而不是节点的总数。它将是2 ^ n=x,正如你已经说过的。< /p>如果你把2 ^ n看成x,你得到同样的东西。2×x=2 *(2 ^ n)=2 ^(n+1)。
int f(int n) { 

  if (n <= 1) {
  return 1;
  }

 return f(n - 1) + f(n - 1); `