- 1 Section
- 10 Lessons
- unbegrenzt
- Algorithmen & Datenstrukturen10
- 1.1Was ist ein Algorithmus?
- 1.2Struktogramm (Nassi-Shneidermann)
- 1.3Pseudocode schreiben
- 1.4Kontrollstrukturen: Sequenz, Auswahl, Schleife
- 1.5Rekursion verstehen
- 1.6Suchen: linear vs. binär
- 1.7Sortieren: Bubble, Selection, Insertion, Merge
- 1.8O-Notation: Zeitkomplexität
- 1.9Datenstrukturen: Array, Liste, Stack, Queue, Baum, Hash
- 1.10Algorithmik-Aufgaben
Algorithmik-Aufgaben
Letzte Lektion des Kurses – die Prüfungsvorbereitung. Wir gehen zwölf typische IHK-Aufgaben zu allen Themen durch: Algorithmus-Grundlagen, Struktogramm, Pseudocode, Kontrollstrukturen, Rekursion, Suche, Sortierung, O-Notation und Datenstrukturen.
Versuche jede Aufgabe erst selbst zu lösen, dann die Musterlösung aufzuklappen. Die Aufgabentypen entsprechen echten IHK-Klausuren: Pseudocode schreiben, Algorithmus auswerten, Komplexität analysieren, Datenstruktur wählen, Sortier-/Suchverfahren anwenden.
1) Überblick
2) Aufgaben Teil A – Grundlagen & Notation
- Endlichkeit: Der Algorithmus besteht aus einer endlichen Anzahl von Schritten – die Beschreibung hat ein Ende.
- Terminiertheit: Der Algorithmus hält nach endlich vielen Schritten an. Endlosschleifen sind nicht erlaubt.
- Determiniertheit: Bei gleicher Eingabe liefert der Algorithmus immer dasselbe Ergebnis.
- Determinismus: In jedem Schritt ist klar, welcher Schritt als nächstes ausgeführt wird – keine Mehrdeutigkeit.
- Eindeutigkeit: Jeder einzelne Schritt ist klar und unmissverständlich beschrieben.
O(n) – die Schleife läuft genau (n-1) mal, also linear.Speicher:
O(1) – nur eine Hilfsvariable max.
< statt >).summe = 0
FÜR i VON 1 BIS n
summe = summe + i
ENDE FÜR
GIB AUS summe1 + 2 + 3 + ... + n.Für n = 10:
n · (n + 1) / 2 = 10 · 11 / 2 = 55 (Gauß'sche Summenformel).Komplexität:
O(n) – die Schleife läuft n-mal.
O(1) berechnen – ohne Schleife. Das ist ein Beispiel dafür, dass ein cleverer Algorithmus dramatisch effizienter sein kann als ein naiver.O(√n) – wir prüfen nur bis zur Wurzel von n.
3) Aufgaben Teil B – Such- und Sortier-Algorithmen
[5, 1, 4, 2, 8].[3, 7, 11, 14, 19, 23, 31, 42, 47, 56, 68, 85, 99]. Suchen Sie mit binärer Suche den Wert 68. Geben Sie für jeden Schritt L, R, M und den Vergleich an.(b) Binäre Suche: O(log₂ n) → log₂(1 000 000) ≈ 20 Vergleiche.
Faktor:
- Bessere Zeitkomplexität:
O(n log n)stattO(n²). Bei großen Datenmengen drastisch schneller. - Garantierte Performance: auch im Worst Case
O(n log n). Bubble Sort kann in jedem Szenario zur Worst-Case-Performance werden. - Stabil: erhält die Reihenfolge gleicher Elemente.
- Gut parallelisierbar: die Teile-Schritte können auf mehreren Prozessoren laufen.
- Kleine Listen (z.B. unter 20 Elemente): einfachere Algorithmen haben weniger Overhead, sind in der Praxis oft schneller.
- Fast sortierte Listen: Insertion Sort schafft das in O(n) – schneller als Merge Sort.
- Begrenzter Speicher: Bubble und Insertion sind in-place (O(1) Extra-Speicher). Merge Sort braucht O(n).
- Lehrkontext: einfacher zu verstehen und zu implementieren.
4) Aufgaben Teil C – Komplexität & Datenstrukturen
(a)
FÜR i VON 1 BIS n: GIB AUS i(b)
FÜR i VON 1 BIS n: FÜR j VON 1 BIS n: GIB AUS i*j(c)
i = n; SOLANGE i > 1: i = i / 2(d)
FÜR i VON 1 BIS n: j = n; SOLANGE j > 1: j = j / 2O(n)(b) Zwei verschachtelte Schleifen, beide n-mal → n · n →
O(n²)(c) Halbierung in jedem Schritt – wie oft kann man n halbieren bis 1? →
O(log n)(d) Äußere Schleife n-mal · innere log n-mal →
O(n log n)
f(4) zurück? Skizzieren Sie den Aufrufbaum.FUNKTION f(n):
WENN n <= 1 DANN GIB ZURÜCK 1
GIB ZURÜCK n * f(n - 1)
ENDE FUNKTIONAufrufkette für f(4):
f(4) = 24, also 4! = 24.Komplexität:
O(n) – n Selbstaufrufe, jeder konstanten Aufwand. Speicher: O(n) für den Call-Stack.
push(5), push(3), pop(), push(8), push(1), pop(), pop(), push(7). Was steht zum Schluss im Stack (von unten nach oben)?5, 7. Top ist 7.
(a) Browser-Verlauf (zurück-Knopf)
(b) Telefonbuch mit Namen → Nummer
(c) Druckaufträge in Reihenfolge abarbeiten
(d) Schnelle Suche in stets sortierter Datenmenge
(e) Pixel-Array eines Bildes
StackBegründung: LIFO – letzte besuchte Seite wird zuerst zurückgeholt. „Zurück" = pop().
(b) Telefonbuch:
Hash-Map (oder sortiertes Array für sequenzielle Suche)Begründung: Lookup per Name (Schlüssel) → Nummer (Wert). Hash-Map bietet O(1) Lookup.
(c) Druckaufträge:
QueueBegründung: FIFO – wer zuerst gedruckt werden soll, kommt zuerst dran. Faire Reihenfolge.
(d) Stets sortierte Datenmenge mit schneller Suche:
Balancierter Baum (BST)Begründung: O(log n) für Suchen, Einfügen, Löschen – und Sortierung wird automatisch erhalten. Sortiertes Array wäre auch denkbar, aber langsam bei häufigem Einfügen.
(e) Pixel-Array eines Bildes:
Array (2D-Array)Begründung: feste Größe, häufiger Zugriff per (x,y)-Koordinaten → O(1). Cache-Lokalität wichtig für Performance.
5) Mini-Quiz
Sieben kurze Multiple-Choice-Fragen zur Wiederholung der Kernkonzepte:
6) Cheatsheet – das musst du auswendig wissen
Am Tag vor der Prüfung überfliegen. Mit diesen Begriffen und Werten parat bist du gut vorbereitet:
Zusammenfassung & Kursabschluss
Damit ist der Kurs Algorithmen & Datenstrukturen abgeschlossen. Eine komplette Tour durch die Grundlagen: was ein Algorithmus überhaupt ist, die wichtigsten Darstellungsformen Struktogramm und Pseudocode, die drei Kontrollstrukturen als Bausteine aller Algorithmen, Rekursion als elegante Alternative zu Schleifen, konkrete Verfahren wie Suche und Sortierung, die O-Notation zur Bewertung und schließlich die wichtigsten Datenstrukturen. Die wichtigsten Take-Aways: Algorithmen sind präzise, terminierte Lösungswege. Mit drei Kontrollstrukturen lässt sich alles ausdrücken. Suche und Sortierung gehören zu den am meisten genutzten Algorithmen. O-Notation beschreibt Wachstum, nicht konkrete Zeit. Die richtige Datenstruktur entscheidet oft mehr als der Algorithmus. Logische Anschlüsse: die Konzepte aus diesem Kurs setzt du in K40a (Java Grundlagen) und K41a (Python) in echten Code um. Datenbank-Indizes (K36) nutzen B-Bäume zur schnellen Suche. Redis (K37) ist im Kern eine massive Hash-Map. Hashing (K11) ist die Grundlage von Hash-Maps und vielen anderen Anwendungen. Wer die Grundlagen aus diesem Kurs verinnerlicht hat, hat das Fundament für nahezu jedes Software-Thema gelegt – Algorithmen und Datenstrukturen sind das eigentliche Herz der Informatik.
