数据结构中的数组加倍
有时我们使用动态内存分配来创建数组。如果使用动态内存分配技术分配了数组,则可以通过执行一些操作来使数组大小加倍。
假设初始数组大小为5。
数组
数组加倍后,大小为-
要使大小为n的数组arr的大小增加一倍,请使用arr[0…n-1]。首先,我们必须创建一个新的大小为m的数组。然后将n个元素从arr复制到新数组。最后,将arr的值更改为指向新数组。
要创建大小为m的数组,这将花费θ(m)的时间。这是因为它将使用一些默认值进行初始化。然后将需要额外的θ(n)时间才能从旧阵列复制到新阵列。因此,该运算需要θ(m+n)的时间。当阵列已满时,将执行此操作。通常,m值等于2n。因此复杂度为θ(2n+n)=θ(3n)等于θ(n)。但是该操作被认为是昂贵的。但是,此操作在子序列n次迭代中摊销,然后每次迭代仅增加θ(1)时间。因此我们可以理解,以恒定因子增加数组大小不会对渐进复杂性产生不利影响。
热门推荐
10 酒桌升学祝福语简短
11 新年祝福语简短聪明可爱
12 高考送考祝福语简短
13 老爸生日暴富祝福语简短
14 爱情贺卡祝福语简短英语
15 他舅生日祝福语简短
16 Q穷人结婚祝福语简短
17 结婚祝福语简短精辟 兄弟
18 生日祝福语大全女孩简短