Zum Inhalt springen

Vertiefung 6 - Erweiterte Funktionen und Algorithmen

Schritt 2 von 7

In diesem Schritt werden wir uns mit Algorithmen auseinandersetzen. Algorithmen sind Schritt-für-Schritt-Anweisungen, die ein Computerprogramm ausführt, um ein bestimmtes Problem zu lösen. Ein wichtiges Konzept in der Algorithmik ist die Komplexität, die die Anzahl der Schritte angibt, die ein Algorithmus benötigt, um ein Problem zu lösen. Eine Möglichkeit, die Komplexität zu messen, ist die Zeitkomplexität, die die Anzahl der Schritte angibt, die ein Algorithmus in Bezug auf die Größe des Eingabedatensatzes benötigt. Ein Beispiel für einen Algorithmus ist die Suche nach einem Element in einer Liste. In Python können wir die index()-Methode verwenden, um ein Element in einer Liste zu finden. Beispiel:

zahlen = [1, 2, 3, 4, 5]
index = zahlen.index(3)
print(index)  # Ausgabe: 2

Ein weiterer wichtiger Aspekt von Algorithmen ist die Sortierung. Sortieren bedeutet, dass wir eine Liste von Elementen in einer bestimmten Reihenfolge anordnen. In Python können wir die sort()-Methode verwenden, um eine Liste zu sortieren. Beispiel:

zahlen = [4, 2, 7, 1, 3]
zahlen.sort()
print(zahlen)  # Ausgabe: [1, 2, 3, 4, 7]

Algorithmen können auch verwendet werden, um Graphen und Netze zu traversieren. Ein Graph ist eine Sammlung von Knoten, die durch Kanten verbunden sind. Ein Beispiel für einen Algorithmus, der einen Graphen traversiert, ist der Breitensuche-Algorithmus. Beispiel:

from collections import deque
 
graph = {
'A': ['B', 'C'],
'B': ['A', 'D', 'E'],
'C': ['A', 'F'],
'D': ['B'],
'E': ['B', 'F'],
'F': ['C', 'E']
}
 
def breitensuche(graph, start):
queue = deque([start])
besucht = set()
while queue:
knoten = queue.popleft()
if knoten not in besucht:
besucht.add(knoten)
print(knoten)
for nachbar in graph[knoten]:
if nachbar not in besucht:
queue.append(nachbar)
 
breitensuche(graph, 'A')