Junior — Middle
Milyen időbeli eredménye van a beszúrás, keresés, olvasás és elem törlés műveleteinek egy tömbben a legrosszabb és átlagos esetben?
sobes.tech MI
Válasz az MI-től
Az iOS szabványos tömb esetében (például NSArray vagy NSMutableArray) a műveletek időbeli jellemzői kb. a következők:
-
Beszúrás:
- A tömb végéhez (append): átlagos és legrosszabb esetben — O(1) amortizált (ha nincs szükség memória újraelosztásra).
- A kezdetén vagy közepén: O(n), mivel az elemeket el kell tolni.
-
Keresés (ha index szerint): O(1), mivel a tömb indexelt.
-
Olvasás index szerint: O(1).
-
Törlés:
- A tömb végéről: O(1).
- A kezdetén vagy közepén: O(n), az elemek eltolása miatt.
Ezért a beszúrás és törlés műveletek a tömb közepén vagy elején lineáris komplexitásúak, míg a hozzáférés és a végén való beszúrás/törlés konstans (amortizált) időt vesz igénybe.