Hvad er en array-datastruktur?
En array-datastruktur er en metode til at lagre lignende datatyper i en lineær sekvens. Denne lineære sekvens giver meget hurtig og effektiv adgang til enhver del af arrayet. Hvert stykke data i en matrix er placeret i en nummereret position kaldes et indeks. De faktiske data, der findes på et bestemt indeks, kaldes et element. Arrays er vidt brugt i de fleste computerprogrammeringssprog og er grundlaget for mange andre typer datastrukturer.
En af de primære træk ved en array-datastruktur er den måde, den gemmes i hukommelsen i. I de fleste tilfælde opbevares arrays i en lineær sekvens. Andre datastrukturer, såsom linkede lister, kan have hvert element gemt på et vilkårligt tilfældigt punkt i hukommelsen spredt over hele området med ledig plads. En matrix gemmes i rækkefølge, så et antal effektive operationer kan udføres for hurtigt at finde adressen på et indeks i hukommelsen og hent dataene der.
Der er forskellige måder at erklære en array-datastruktur på. Den enkleste form er en endimensional matrix, der begynder ved indeks nul og kan have så mange indekser som nødvendigt. En to-dimensionel array har to indekser, når der henvises, svarende til bredden og højden, der bruges til at samle koordinater på et gitter. Multidimensionelle arrays kan have tre eller flere indekser i matrixen. Selvom man får adgang til matrixen med mere end en indeksreference, lagres dataene stadig lineært i hukommelsen.
Arrays adskiller sig fra andre datastrukturer, f.eks. Linkede lister. En tilknyttet liste er en dynamisk struktur, der kan vokse og skrumpe, når programmet kører. For det meste er arrays statiske, og deres størrelse kan ikke være ændret under udførelse. Dette betyder, at en matrix begrænser mængden af elementer, der kan gemmes i løbet af runtime. Omvendt giver en array helt tilfældig adgang til de elementer, den indeholder, i modsætning til en linket liste der skal gennemgås i rækkefølge for at nå elementerne i midten og slutningen.
Hastigheden i en array-datastruktur gør den perfekt egnet til brug i andre, mere komplekse datatyper, såsom hash-tabeller. Forudsigeligheden af hukommelsesadresserne til elementerne kan også bruges til at implementere meget hurtige array-splejsningsalgoritmer der kan flytte data hurtigt. Dette er især nyttigt til sortering af operationer som f.eks. boblesorter, der er perfekt egnet til brug sammen med matriser.