删除所有数组元素的时间复杂度是多少?

时间:2019-05-18 14:06:53

标签: arrays data-structures time-complexity

我们知道,删除数组元素的时间复杂度为o(n),那么删除整个数组的时间复杂度是多少?

我认为是o(1),因为数组地址空间是连续的。我的猜测正确吗?

1 个答案:

答案 0 :(得分:0)

删除数组本身将是O(1),因为它将简单地将内存释放到池中,而删除数组中的每个项目将是O(n),因为每个项目都需要单独删除。

有些例外,例如,某些实现可能使用一种算法,该算法清除大于数组中每个项目大小的块中的内存(这将是O(n / c),其中c是一个块的多少倍。相比于数组中的项目),某些语言可能会简单地释放原始数组,并使指针指向新的空数组,该数组将为O(1)。但是,以上答案假设是幼稚的实现。