Vad är en array-datastruktur?
En matrisdatastruktur är en metod för att lagra liknande datatyper i en linjär sekvens. Denna linjära sekvens möjliggör mycket snabb och effektiv åtkomst till vilken del av matrisen som helst. kallas ett index. De faktiska data som finns på ett visst index kallas ett element. Arrays används ofta i de flesta datorprogrammeringsspråk och är grunden för många andra typer av datastrukturer.
En av de primära funktionerna i en matrisdatastruktur är hur den lagras i minnet. I de flesta fall lagras matriser i en linjär sekvens. Andra datastrukturer, såsom länkade listor, kan ha varje element lagrat vid någon slumpmässig punkt i minnet spridd över hela det tillgängliga utrymmet. En matris lagras i sekvens, så ett antal effektiva operationer kan utföras för att snabbt hitta adressen till ett index i minnet och hämta uppgifterna där.
Det finns olika sätt att förklara en matrisdatastruktur. Den enklaste formen är en endimensionell matris, som börjar vid index noll och kan ha så många index som nödvändigt. En tvådimensionell matris har två index när det hänvisas, liknande bredden och höjden som används för att montera koordinater på ett rutnät. Multidimensionella matriser kan ha tre eller fler index i matrisen. Även om matrisen åtkomst med mer än en indexreferens lagras data fortfarande linjärt i minnet.
Arrays skiljer sig från andra datastrukturer, till exempel länkade listor. En länkad lista är en dynamisk struktur som kan växa och krympa när programmet körs. För det mesta är matriser statiska och deras storlek kan inte vara ändras under körning. Detta betyder att en matris begränsar mängden element som kan lagras under körning. Omvänt tillåter en matris helt slumpmässig åtkomst till elementen som den innehåller, till skillnad från en länkad lista som måste korsas i följd för att nå elementen i mitten och slutet.
Hastigheten hos en matrisdatastruktur gör den perfekt lämpad för användning i andra, mer komplexa datatyper, såsom hash-tabeller. Förutsägbarheten för elementets minnesadresser kan också användas för att implementera mycket snabba array-skarvningsalgoritmer som kan flytta data snabbt. Detta är särskilt användbart för att sortera operationer som bubbelsorter som är perfekt lämpade för användning med matriser.