Sobes.tech
Junior — Middle

Kāda ir dinamiskā masīva elementa pievienošanas operācijas laika sarežģītība?

sobes.tech AI

Atbilde no AI

Dinamisks masīvs elementa pievienošana parasti ir ir amortizēta laika sarežģītība ir O(1).

Skaidrojums:

  • Ja masīvā ir brīva vieta, elements tiek pievienots konstantā laikā.
  • Ja vieta nav, masīvs piešķir jaunu, lielāku atmiņas bloku (parasti divreiz lielāku), kopē vecos elementus un pievieno jauno.

Lai gan paplašināšanas operācija aizņem O(n) laiku, tā notiek reti, tāpēc vidējā (amortizētā) pievienošanas sarežģītība paliek O(1).

Piemērs Go valodā ar slices:

var arr []int
arr = append(arr, 10) // elementa pievienošana

append automātiski paplašinās slices, ja tas ir nepieciešams.