10.1 Besonderheiten von dynamischen Arrays
Dynamische Arrays sind Datenstrukturen, die ihre Größe während der Laufzeit des Programms ändern können. Sie ermöglichen eine effiziente Verwaltung einer Sammlung von Elementen, das Hinzufügen und Entfernen von Elementen, ohne die Größe des Arrays im Voraus festlegen zu müssen.
In Python ist ein dynamisches Array eine Liste (eingebaute Klasse list), die es ermöglicht, Elemente an beliebigen Positionen hinzuzufügen, zu entfernen und zu ändern.
Besonderheiten dynamischer Arrays:
- Veränderbare Größe: Dynamische Arrays können nach Bedarf wachsen und schrumpfen.
- Schneller Zugriff per Index: Der Zugriff auf Elemente erfolgt in konstanter Zeit
O(1). - Automatische Speicherverwaltung: Python verwaltet die Allokation und Freigabe von Speicher für Listen automatisch.
- Bequeme Methoden für die Arbeit mit Elementen: Eingebaute Methoden ermöglichen es, Elemente einfach hinzuzufügen, zu entfernen und zu ändern.
Beispiel zur Erstellung und Nutzung eines dynamischen Arrays in Python:
# Erstellung einer Liste
dynamic_array = [1, 2, 3, 4, 5]
# Hinzufügen eines Elements
dynamic_array.append(6)
print(dynamic_array) # Ausgabe: [1, 2, 3, 4, 5, 6]
# Entfernen eines Elements
dynamic_array.remove(3)
print(dynamic_array) # Ausgabe: [1, 2, 4, 5, 6]
# Zugriff per Index
print(dynamic_array[2]) # Ausgabe: 4
# Ändern eines Elements
dynamic_array[2] = 10
print(dynamic_array) # Ausgabe: [1, 2, 10, 5, 6]
10.2 Vor- und Nachteile von dynamischen Arrays
Dynamische Arrays haben ihre eigenen Vor- und Nachteile. Lassen uns diese genauer betrachten.
Vorteile:
- Flexibilität: Dynamische Arrays können ihre Größe je nach Bedarf des Programms ändern, was eine effiziente Speicherverwaltung ermöglicht und variable Datenmengen verarbeitet.
- Schneller Zugriff per Index: Wie statische Arrays ermöglichen dynamische Arrays einen schnellen Zugriff auf Elemente per Index in konstanter Zeit
O(1). - Benutzerfreundlichkeit: Die eingebauten Methoden in Python für Listen (z.B. append, remove, insert) erleichtern die Manipulation von Elementen und machen den Code lesbarer und wartbarer.
- Automatische Speicherverwaltung: Python verwaltet den Speicher für dynamische Arrays automatisch, was den Programmierer von der manuellen Speicherverwaltung entlastet.
Nachteile:
- Neuverteilung des Speichers: Bei Vergrößerung eines dynamischen Arrays kann eine Neuverteilung des Speichers erforderlich sein, was das Kopieren von Elementen in einen neuen Speicherbereich bedeutet und das Programm vorübergehend verlangsamen kann.
- Kosten für Einfügen und Entfernen von Elementen: Das Einfügen und Entfernen von Elementen in der Mitte des Arrays erfordert das Verschieben von Elementen, was
O(n)Zeit beansprucht. - Etwas höhere Overheads für die Verwaltung: Im Vergleich zu Low-Level-Sprachen wie C haben dynamische Arrays in Python zusätzliche Overheads aufgrund der automatischen Speicherverwaltung und Fehlerbehandlung.
10.3 Beispiele für die Nutzung und Anwendung
Lassen uns ein paar Beispiele für die Nutzung von dynamischen Arrays in Python betrachten.
1. Implementierung einer dynamischen Aufgabenliste:
tasks = []
# Hinzufügen von Aufgaben
tasks.append("Task 1")
tasks.append("Task 2")
tasks.append("Task 3")
# Erledigen einer Aufgabe und Entfernen aus der Liste
completed_task = tasks.pop(0)
print(f"Erledigt: {completed_task}")
print(f"Verbleibende Aufgaben: {tasks}") # Ausgabe: Verbleibende Aufgaben: ['Task 2', 'Task 3']
2. Implementierung einer dynamischen Liste von Objekten:
students = []
# Hinzufügen von Studenten
students.append("Alice")
students.append("Bob")
students.append("Charlie")
# Entfernen eines Studenten
students.remove("Bob")
print(f"Studenten nach Entfernung: {students}") # Ausgabe: Studenten nach Entfernung: ['Alice', 'Charlie']
# Hinzufügen eines Studenten an eine bestimmte Position
students.insert(1, "David")
print(f"Studenten nach Einfügen: {students}") # Ausgabe: Studenten nach Einfügen: ['Alice', 'David', 'Charlie']
GO TO FULL VERSION