堆栈中多次推送操作的成本?

时间:2017-09-01 17:18:14

标签: data-structures stack

我有一个堆栈,我对它进行了一些推送操作。现在我们知道推送操作通常是O(1)。所以如果我们的堆栈大小足以编码20个元素并且我们执行push操作20次,然后20次推进操作的成本是多少?它仍然是O(1)还是我认为的方式是n * O(1)= O(n)?

1 个答案:

答案 0 :(得分:0)

如果您知道编译时的推送次数,则时间复杂度将为O(1)的数量级。
如果推送次数在执行后得到其值并且取决于数据和处理,则时间复杂度将为O(n)的量级。

这似乎是不公平的,但这个想法是,如果它在程序的不同执行中保持不变,它是一个常数,而如果它取决于数据并且在程序的不同执行中有所不同,则它是非常数。