Sobes.tech
Junior — Middle

Kako proceniti vremensku složenost operacije brisanja elementa iz niza?

sobes.tech АИ

Одговор од АИ

Vremenska složenost brisanja elementa iz niza zavisi od tipa niza i načina brisanja:

  • U standardnom nizu (na primer, Array u Swift-u), brisanje elementa po indeksu zahteva pomeranje svih narednih elemenata ulevo da popune "rupu". To dovodi do složenosti O(n), gde je n broj elemenata posle obrisanog.

  • Ako se briše poslednji element, operacija se obično izvršava za O(1), jer nije potrebno pomeranje.

  • U slučaju dinamičkih nizova (na primer, ArrayList u Javi ili NSMutableArray u Objective-C), situacija je slična — brisanje iz sredine zahteva pomeranje elemenata.

Primer:

var array = [1, 2, 3, 4, 5]
array.remove(at: 2) // briše element na indeksu 2 (broj 3)
// Nakon brisanja, elementi 4 i 5 se pomeraju za jednu poziciju ulevo

Uopšteno, brisanje elementa iz niza je operacija sa vremenskom složenošću O(n).