Sobes.tech
Junior — Middle

Jak určit čas potřebný k vložení prvku na konec řezu (slice) v programovacím jazyce?

sobes.tech AI

Odpověď od AI

V jazyce Go je řada (slice) struktura, která obsahuje ukazatel na pole, délku a kapacitu.

Vkládání prvku na konec řady se obvykle provádí pomocí operace append:

slice = append(slice, newElement)

Doba vložení závisí na tom, zda je aktuální kapacita řady dostatečná pro nový prvek:

  • Pokud je kapacita dostatečná, append jednoduše zapíše prvek do další volné pozice — operace O(1).
  • Pokud kapacita nestačí, alokuje se nový pole s větší kapacitou, staré prvky se zkopírují a přidá se nový — operace O(n), kde n je současná délka řady.

Tím je průměrná doba vložení na konec řady O(1), i když některé operace mohou být dražší kvůli přerozdělení paměti.