Junior — Middle
Aká je časová zložitosť operácie vloženia prvku na začiatok množiny údajov?
sobes.tech AI
Odpoveď od AI
Časová zložitosť vloženia prvku na začiatok dátovej štruktúry závisí od použitej dátovej štruktúry.
- Ak je množina implementovaná ako prepojený zoznam (napríklad jednoducho prepojený zoznam), vloženie na začiatok bude mať zložitosť O(1), pretože stačí zmeniť ukazovateľ na nový prvok.
- Ak je množina implementovaná ako pole alebo dynamické pole (napríklad ArrayList), vloženie na začiatok vyžaduje posun všetkých prvkov, čo dáva zložitosť O(n).
- V štandardných dátových štruktúrach množín (napríklad HashSet v Swift alebo Set v iOS) neexistuje pojem "začiatok", pretože množina nie je usporiadaná. Vloženie prvku zvyčajne prebieha v amortizovanom čase O(1).
Teda, ak hovoríme konkrétne o množine (Set), vloženie prvku nemá pojem "začiatok" a prebieha v O(1). Ak ide o zoradenú kolekciu, potom vloženie na začiatok môže byť O(1) alebo O(n), v závislosti od implementácie.