4.1 Definition eines Arrays und seine Eigenschaften
Ein Array ist eine Datenstruktur, die eine geordnete Menge von Elementen eines Typs darstellt, die in aufeinanderfolgenden Speicherzellen angeordnet sind. Jedes Element eines Arrays hat einen einzigartigen Index, der zum Zugriff verwendet wird.
Hier ist ein einfaches Array der Größe 4 gezeigt, das die Elemente (1, 2, 3 und 4) enthält.
Eigenschaften eines Arrays:
- Feste Größe: Die Größe eines Arrays wird bei seiner Erstellung festgelegt und kann während der Programmausführung nicht geändert werden.
- Homogenität der Elemente: Alle Elemente eines Arrays müssen vom gleichen Typ sein (z. B. ganze Zahlen, Strings).
- Sequenzielle Anordnung im Speicher: Die Elemente eines Arrays werden in aufeinanderfolgenden Speicherzellen gespeichert, was einen schnellen Zugriff über den Index ermöglicht.
- Schneller Zugriff über den Index: Der Zugriff auf jedes Element eines Arrays erfolgt in konstanter Zeit
O(1).
4.2 Beispiele für die Verwendung von Arrays
Schauen wir uns Beispiele für die Verwendung von Arrays an, die du bereits kennst:
Speichern von Daten fester Länge
Wochentage, Monate des Jahres:
# Erstellung eines Arrays mit Wochentagen
days_of_week = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
print(days_of_week[2]) # Ausgabe: Wednesday
Matrizen und mehrdimensionale Arrays
3x3 Matrix:
# Erstellung einer 3x3 Matrix
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print(matrix[1][1]) # Ausgabe: 5
Verwendung in Sortieralgorithmen
Sortieren eines Zahlenarrays:
# Sortierung eines Zahlenarrays
numbers = [5, 2, 9, 1, 5, 6]
numbers.sort() # Sortierung des Arrays
print(numbers) # Ausgabe: [1, 2, 5, 5, 6, 9]
Puffer zum Speichern temporärer Daten
Puffer zum Lesen von Daten aus einer Datei:
# Erstellung eines Puffers der Größe 1024 Byte
buffer = [0] * 1024
print(len(buffer)) # Ausgabe: 1024
4.3 Grundlegende Operationen mit Arrays
Wichtig! Die Klasse list in Python ist ein dynamisches Array, sie kann ihre Größe während der Laufzeit ändern. Mehr über dynamische Arrays erfährst du in ein paar Vorlesungen.
Grundlegende Operationen: Zugriff über den Index, Einfügen, Löschen
Zugriff über den Index
Der Zugriff auf ein Array-Element erfolgt über den Index, der auf seine Position verweist.
# Zugriff auf Array-Elemente über den Index
arr = [10, 20, 30, 40, 50]
print(arr[2]) # Ausgabe: 30
print(arr[-1]) # Ausgabe: 50 (letztes Element)
Einfügen
Das Einfügen eines Elements in ein Array kann erfordern, dass alle nachfolgenden Elemente verschoben werden, um Platz für das neue Element zu schaffen.
Beispiel (Einfügen eines Elements in die Mitte des Arrays):
# Einfügen eines Elements in ein Array
arr = [10, 20, 30, 40, 50]
arr.insert(2, 25) # Einfügen von 25 an Position 2
print(arr) # Ausgabe: [10, 20, 25, 30, 40, 50]
Löschen
Das Löschen eines Elements aus einem Array kann erfordern, dass alle nachfolgenden Elemente verschoben werden, um die Lücke zu füllen.
Beispiel (Löschen eines Elements):
# Löschen eines Elements aus einem Array
arr = [10, 20, 30, 40, 50]
arr.pop(2) # Löschen des Elements an Position 2
print(arr) # Ausgabe: [10, 20, 40, 50]
4.4 Vorteile und Nachteile der Verwendung von Arrays
Betrachten wir die Vor- und Nachteile der Verwendung von Arrays:
Vorteile:
- Schneller Zugriff über den Index: Der Zugriff auf jedes Element eines Arrays erfolgt in konstanter Zeit
O(1), was Arrays sehr effizient für das Lesen von Daten macht. - Einfachheit der Implementierung: Arrays sind leicht zu verstehen und zu verwenden, sie sind einfach zu implementieren und in verschiedenen Aufgaben anzuwenden.
- Geringer Overhead: Arrays benötigen weniger Speicher im Vergleich zu komplexeren Datenstrukturen wie verketteten Listen.
Nachteile:
- Feste Größe: Die Größe eines Arrays wird bei seiner Erstellung festgelegt und kann nicht geändert werden. Das bedeutet, dass man die erforderliche Größe des Arrays im Voraus kennen oder dynamische Arrays verwenden muss, die sich bei Bedarf vergrößern können.
- Aufwand für Einfügen und Löschen: Das Einfügen und Löschen von Elementen kann zeitaufwändig sein, da das Verschieben von Elementen erforderlich ist. Im schlimmsten Fall dauert das Einfügen oder Löschen eines Elements in der Mitte eines Arrays
O(n)Zeit. - Ineffiziente Speichernutzung: Wenn ein Array nicht vollständig genutzt wird, bleiben die verbleibenden Speicherzellen leer, was zu einer ineffizienten Speichernutzung führen kann.
GO TO FULL VERSION