Junior
Jak jsou pole ve programování strukturována?
sobes.tech AI
Odpověď od AI
Pole jsou uspořádané kolekce prvků stejného typu, uložené v sousedních (sekvenčních) paměťových buňkách.
Hlavní vlastnosti:
- Indexování: Přístup k prvkům se provádí pomocí indexu, který začíná od 0. Index udává posun od začátku pole.
- Velikost: Velikost pole (počet prvků) je pevná při jeho vytvoření v jazycích s pevným typem nebo může být dynamicky měněna v jazycích s dynamickým typem (například v Swift
Array). - Typ dat: Všechny prvky pole musí mít stejný datový typ.
- Souslednost: Uložení prvků v sousedních paměťových buňkách zajišťuje rychlý přístup k libovolnému prvku přes jeho index.
Operace:
- Přístup přes index: O(1) - konstantní čas.
- Přidání/odstranění na konci: O(1) průměrně pro dynamické pole (Swift
Array). - Přidání/odstranění na začátku nebo uprostřed: O(n) - lineární čas, protože může být nutné posunout prvky.
Příklad v Swift:
// Vytvoření pole řetězců
var names: [String] = ["Alice", "Bob", "Charlie"]
// Přístup k prvku přes index
let first_name = names[0] // "Alice"
// Přidání prvku
names.append("David") // ["Alice", "Bob", "Charlie", "David"]
// Odstranění prvku
names.remove(at: 1) // ["Alice", "Charlie", "David"]
// Iterace přes pole
for name in names {
print(name)
}
Vnitřní struktura (pro dynamická pole typu Swift Array):
Dynamická pole jsou obvykle implementována na základě staticky přiděleného bufferu paměti. Když kapacita bufferu dosáhne, je alokován nový, větší buffer a staré prvky jsou zkopírovány (reallocace). To zajišťuje amortizovanou složitost O(1) pro přidání na konec.