For pop operation :
If Q1 is empty , an underflow has occurred , throw an error
Else , we copy all but the last element of Q1 to Q2 , we return the last element copied .
We then copy back the elements from Q2 to Q1.
我认为这将是不变的增长率,因为如果它有一个项目,那么总是会产生恒定的时间?
答案 0 :(得分:1)
我们将Q1的最后一个元素复制到Q2
复制元素的时间取决于元素的数量。为O(n)。
然后我们将元素从Q2复制回Q1
也是O(n)操作。两个O(n)操作仍然是O(n)。
因为如果它有一个项目,那么总是会产生恒定的时间吗?
当然,如果你总是有一个项目,它会在恒定的时间内运行。当你有n个项目时,Big-O符号表示系统的行为,而n很大。
答案 1 :(得分:1)
复制元素本身需要O(n)
运行时复杂度。如果你熟悉渐近符号意味着什么,你知道它是指“基本”操作的数量。您必须一次一个一个地复制内存。即使您复制的内存块仍然至多是一个恒定的数量,我们称之为k
。进行N/k
操作意味着您仍然具有O(n)
复杂性。现在您可以看到第一步需要O(n)
,第二步需要O(1)
(返回并指定?),最后一步需要再次O(n)
,在对它们求和之后会得到{ {1}}。