Vad är en matrisdatastruktur?

En arraydatastruktur är en metod för att lagra liknande datatyper i en linjär sekvens. Denna linjära sekvens ger mycket snabb och effektiv åtkomst till vilken del av arrayen som helst. Varje del av data i en array är placerad på en numrerad position kallas ett index. Den faktiska data som finns vid ett visst index kallas ett element. Arrayer används i stor utsträckning i de flesta datorprogrammeringsspråk och är grunden för många andra typer av datastrukturer.

En av de primära egenskaperna hos en arraydatastruktur är hur den lagras i minnet. I de flesta fall lagras arrays i en linjär sekvens. Andra datastrukturer, såsom länkade listor, kan ha varje element lagrat vid valfri slumpmässig punkt i minnet spridda över hela området med tillgängligt utrymme. En array 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 data där.

Det finns olika sätt att deklarera en matrisdatastruktur. Den enklaste formen är en endimensionell matris, som börjar vid index noll och kan ha så många index som behövs. En tvådimensionell matris har två index när de refereras, liknande bredden och höjden som används för att montera koordinater på ett rutnät. Flerdimensionella arrayer kan ha tre eller fler index i arrayen. Även om arrayen nås med mer än en indexreferens lagras data fortfarande linjärt i minnet.

Matriser 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 innebär att en array begränsar mängden element som kan lagras under körning. Omvänt tillåter en array helt slumpmässig åtkomst till de element som den innehåller, till skillnad från en länkad lista som måste passeras i sekvens för att nå elementen i mitten och slutet.

Hastigheten hos en arraydatastruktur gör den perfekt lämpad för användning i andra, mer komplexa datatyper, såsom hashtabeller.Förutsägbarheten hos elementens minnesadresser kan också användas för att implementera mycket snabba arraysplitsningsalgoritmer som kan flytta data snabbt. Detta är särskilt användbart för sorteringsoperationer som bubbelsorteringar som är perfekt lämpade för användning med arrayer.