Sobes.tech
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.