Array
aus Freepedia, der freien Wissensdatenbank
Ein Array (engl. für Anordnung, Aufstellung, Reihe, Reihung, Feld, Bereich) ist der Sammelbegriff für eine Anordnung, Aufstellung, Reihe von gleichen Elementen in festgelegter Art und Weise.
Die häufigste konkrete Verwendung findet der Begriff Array als Beschreibung für eine Datenstruktur in der Informatik. Dabei wird zwischen dem (Standard-)Array und dem assoziativen Array unterschieden.
Spezielle Richtfunkantennen benutzen Arrays von Antennen und in der Akustik werden Mikrofonarrays zur Ortung von Schallquellen eingesetzt. RAIDs verwenden Arrays von Festplatten zur sicheren Speicherung von Daten.
Inhaltsverzeichnis |
(Standard-)Array
Mit Hilfe eines Arrays können Daten eines einheitlichen Datentyps geordnet so im Speicher eines Computers abgelegt werden, dass ein Zugriff auf die Daten über einen Index möglich wird. Das (Standard-)Array verwendet im Gegensatz zum assoziativen Array einen ganzzahligen Index zur Adressierung.
Beispiele
- Vektor (Eindimensional)
- Vektor = (10, -11, 12)
- So liefert Vektor[2] den Wert -11 (hier wird die Zahl 1 als Startindex definiert; in der Praxis ist es meistens die 0).
Schachfeld is array(8,8) of String Schachfeld = ("Turm_W","Springer_W","Läufer_W",...,"Turm_W", "Bauer_W,"Bauer_W" ,"Bauer_W" ,...,"Bauer_W", "Leer" ,"Leer", ,"Leer" ,...,"Leer", "Leer" ,"Leer", ,"Leer" ,...,"Leer", "Leer" ,"Leer", ,"Leer" ,...,"Leer", "Leer" ,"Leer", ,"Leer" ,...,"Leer", "Bauer_S,"Bauer_S" ,"Bauer_S" ,...,"Bauer_S", "Turm_S","Springer_S","Läufer_S",...,"Turm_S")
Die Beispielsanweisungen Schachfeld(3,3) := Schachfeld (1,2) und Schachfeld(1,2) := "Leer" liefern den Eröffnungszug "Weißer Springer auf C3".
In den meisten höheren Programmiersprachen ist das (Standard-)Array Teil des Sprachumfangs. Die objektorientierten Programmiersprachen können diese Arrays als Objekte nachbilden.
Adressierung eines Arrays
Da letztlich auch die in einem Array gespeicherten Elemente in einem linearen Speicher abgelegt werden müssen, gibt es die Möglichkeit über den so genannten Dope-Vektor die Speicheradresse eines beliebigen Elements in einem Array zu errechnen.
In einem n-dimensionalen Array <math>A[i_1:k_1, i_2:k_2, ... , i_n:k_n]</math> wird die Adresse eines Elements <math>a[j_1,j_2, .., j_n]</math> mit Hilfe der Formel <math>\sum_{s=1}^{n-1}( (j_s-i_s) \cdot \prod_{t=s+1}^{n} (k_t-i_t+1))</math> berechnet.
Da die Produkte <math>\prod_{t=s+1}^{n} (...)</math> in dieser Formel konstant sind, können sie einmalig berechnet werden und der daraus resultierende Dope-Vektor d ermöglicht dann über die Formel <math>\sum_{t=1}^{n} (j_t-i_t) \cdot d_t</math> eine sehr schnelle Berechnung der Adresse eines jeden gespeicherten Elements.
Assoziatives Array
Eine Sonderform bildet das assoziative Array. Es verwendet keinen numerischen Index, sondern einen so genannten Schlüssel zur Indizierung und damit zur Adressierung eines Elements. Am häufigsten werden assoziative Arrays als Hashtabelle umgesetzt.



