Sobes.tech
Junior — Middle

Mi a művelet időbeli összetettsége az első elem törlésénél egy dinamikus tömbből vagy diákról?

sobes.tech MI

Válasz az MI-től

A dinamikus tömb vagy diá első elemének törlése Go-ban általában O(n) időkomplexitással jár, ahol n a diában lévő elemek száma. Ez azért van, mert az első elem törlése után minden következő elemet egy pozícióval balra kell mozgatni, hogy kitöltse az üres helyet.

Példa:

s := []int{1, 2, 3, 4, 5}
s = s[1:] // első elem törlése

Ebben a példában a dia eltolódik, de ha valóban törölni szeretné az elemet és felszabadítani a memóriát, akkor manuálisan kell másolnia az elemeket, ami szintén O(n).