← Tilbage til strukturer
Array
LineærEn sekvens af elementer gemt i sammenhængende hukommelse med fast eller dynamisk størrelse.
Kompleksitet
| Operation | Tidskompleksitet |
|---|---|
| Access | O(1) |
| Search | O(n) |
| Insertion | O(n) |
| Deletion | O(n) |
Beskrivelse
Et array er en af de mest fundamentale datastrukturer i programmering. Det gemmer elementer i en sammenhængende blok af hukommelse, hvilket giver hurtig adgang via indeks. Arrays kan være enten statiske med fast størrelse eller dynamiske hvor størrelsen kan ændres. I de fleste programmeringssprog er array indeksering zero-based, hvilket betyder at det første element har indeks 0. Arrays er ideelle når du ved antallet af elementer på forhånd og har brug for hurtig adgang til elementer via deres position.
Kode Eksempel
// JavaScript Array eksempel
const numbers = [1, 2, 3, 4, 5];
// Adgang til element
console.log(numbers[0]); // 1
// Tilføj element
numbers.push(6); // [1, 2, 3, 4, 5, 6]
// Fjern element
numbers.pop(); // [1, 2, 3, 4, 5]
// Søg efter element
const index = numbers.indexOf(3); // 2
// Iterer gennem array
for (let i = 0; i < numbers.length; i++) {
console.log(numbers[i]);
}
// Moderne iteration
numbers.forEach(num => console.log(num));
// Map transformation
const doubled = numbers.map(num => num * 2);
// Filter elementer
const evenNumbers = numbers.filter(num => num % 2 === 0);Anvendelsesområder
- •Lagring af en sekvens af elementer
- •Implementation af andre datastrukturer (stacks, queues)
- •Matrix operationer og multi-dimensionelle data
- •Lookup tables og caching
- •Buffers til IO operationer
Fordele
- ✓O(1) tid til adgang af elementer via indeks
- ✓Simpel og intuitiv at bruge
- ✓Cache-venlig pga. sammenhængende hukommelse
- ✓Lav memory overhead
- ✓Indbygget i alle programmeringssprog
Ulemper
- ✗Statiske arrays har fast størrelse
- ✗Indsættelse og sletning i midten er dyrt (O(n))
- ✗Dynamiske arrays kan kræve reallokering
- ✗Spild af hukommelse hvis ikke fuldt udnyttet
Eksempler fra den virkelige verden
- •Pixel data i billeder (2D array)
- •Shopping cart items i e-commerce
- •Sensor readings fra IoT devices
- •Game board states (skakbræt, Sudoku)
- •Time series data (aktieker, temperaturer)
Relaterede strukturer
ArrayListVectorDynamic ArrayMatrix