时间复杂度 - 在动态数组的中间插入项目

时间:2015-07-03 20:49:55

标签: data-structures big-o time-complexity dynamic-arrays

我遇到了关于动态数组的时间复杂性的article,其中阐述了很多内容。但是我有一个基于案例的问题。假设我有一个动态数组,总共有6个元素,并假设第4个元素被删除。在这种情况下,删除复杂性将是O(n-index),它将是O(6-4) = 2,因为最后两个元素只需要向上移动。它是否正确 ?我的文章给出了最糟糕的案例复杂性,如果删除了最顶层的元素,那么时间复杂度将是O(n)。我找不到任何谈论从中心移除/插入物品的事情。

1 个答案:

答案 0 :(得分:3)

您对需要移动的项目数量的分析是正确的。但是,在big-O表示法中,那仍然是O(n)。如果您在列表中有 n 项目并从中间删除某些内容,则必须移动* 0.5 * n *项目。但是当处理big-O时,我们会丢弃任何常数乘数,因此只需 O(n)