Një grup është një blok i pandërprerë memorie që mban elemente të të njëjtit tip, të indeksuar nga 0. Sepse elementet janë të vendosur njëra pranë tjetrës, adresa e elementit i llogaritet drejtpërdrejt si base + i * elementSize, duke dhënë .
Një grup është një blok i pandërprerë memorie që mban elemente të të njëjtit tip, të indeksuar nga 0. Sepse elementet janë të vendosur njëra pranë tjetrës, adresa e elementit i llogaritet drejtpërdrejt si base + i * elementSize, duke dhënë .
index: 0 1 2 3 4
+-----+-----+-----+-----+-----+
arr = | 10 | 20 | 30 | 40 | 50 |
+-----+-----+-----+-----+-----+
address: base +4 +8 +12 +16 (4-byte ints)
arr = [10, 20, 30, 40, 50]
x = arr[3] # O(1) — direct index math
arr.append(60) # amortized O(1) (dynamic array)
arr.insert(0, 5) # O(n) — shift every element right
arr.pop(0) # O(n) — shift every element left
| Operacioni | Koha |
|---|---|
| Qasja sipas indeksit | O(1) |
| Kërkimi (i pasortuar) | O(n) |
| Shtimi (dinamik) | O(1) i amortizuar |
| Fut/fshi në fillim/mes | O(n) |
Grupet janë themeli nën shumicën e strukturave të tjera — vargjet, tabelat hash, grumbujt dhe listat dinamike të gjitha ndërtohen mbi to.
Lokalizimi i tyre në cache shpesh bën që një grup "më i ngadalë" Big-O të tejkalojë një strukturë "më të shpejtë" të bazuar në udhëzues në benchmarkat realë.