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.