删除所有数组元素的时间复杂性是什么?



众所周知,删除数组元素的时间复杂性是o(n(,那么删除整个数组的时间复杂性是多少?

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

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

有例外,某些实现可能会使用算法清除内存的块中的内存大于数组中每个项目的大小(c是o(n/c(,其中c是块大的次数。与数组中的一个项目相比,某些语言可能只是释放原始数组,并指向一个新的空数组,即O(1(。然而,上面的答案是假设实施幼稚。

最新更新