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,
Arrayu 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,
ArrayListu Javi iliNSMutableArrayu 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).