đ§©
Vorlesung 3
Was ist ein Algorithmus?
Fortgeschrittene Algorithmen und Programmierung
Prof. Dr. Alexandra Mikityuk
HTW Berlin
DrĂŒcken Sie â oder Leertaste zum Starten
Willkommen zurĂŒck!
In den letzten zwei Wochen haben wir Datentypen, Variablen und Eingabe/Ausgabe in C wiederholt.
Heute machen wir den groĂen Sprung: Wir reden zum ersten Mal ĂŒber Algorithmen â das HerzstĂŒck der Informatik.
đŻ Das Ziel heute:
Verstehen, was ein Algorithmus ist, und die ersten Beispiele anschauen â ganz ohne Mathematik-Dschungel.
Themen der heutigen Vorlesung
Teil 1: Was ist ein Algorithmus?
- Definition â und warum ein Kochrezept einer ist
- Die vier Eigenschaften jedes Algorithmus
- Erstes Beispiel: das Maximum finden
Teil 2: Der Trick von GauĂ
- Die Summe 1 + 2 + ⊠+ 100
- Der geniale Trick eines 9-JĂ€hrigen
- Warum clever denken schneller ist als hart arbeiten
Was ist ein Algorithmus?
Ein Algorithmus ist eine Schritt-fĂŒr-Schritt-Anleitung, um aus einer Eingabe eine Ausgabe zu erzeugen.
Das klingt kompliziert. Ist es aber nicht. Du benutzt Algorithmen jeden Tag â nur nennst du sie anders.
đł
Kochrezept
Input: Zutaten
Output: Pizza
đ ïž
IKEA-Anleitung
Input: Teile
Output: Regal
đșïž
Wegbeschreibung
Input: Start & Ziel
Output: Route
Woher kommt das Wort "Algorithmus"?
đ
Muhammad ibn Musa
al-Khwarizmi
persischer Mathematiker, ~ 825 n. Chr.
lebte und lehrte in Bagdad
Sein Name â unser Wort
Sein Name "al-Khwarizmi" wurde im Lateinischen zu "Algorismus" â daraus wurde das deutsche "Algorithmus".
Aus seinem Buch "al-jabr" kommt ĂŒbrigens auch das Wort "Algebra".
đĄ Fun Fact: Algorithmen gibt es seit ĂŒber 1200 Jahren â der erste war eine Anleitung, lineare Gleichungen zu lösen. Lange bevor es Computer gab.
Algorithmen begegnen dir jeden Tag
Du benutzt sie â meistens, ohne es zu merken.
đ”
Spotify Shuffle
Welcher Song kommt als nĂ€chstes? Ein Algorithmus mischt â aber nicht ganz zufĂ€llig.
đșïž
Google Maps
Schnellster Weg zur HTW? Ein Algorithmus durchsucht Millionen StraĂen in Sekunden.
đŹ
Netflix-Empfehlungen
"Das könnte dir gefallen" â ein Algorithmus rĂ€t, was du als nĂ€chstes schauen willst.
đ±
TikTok-Feed
Welches Video du als nĂ€chstes siehst, entscheidet ein Algorithmus â sekundenschnell.
đ
Aldi-Kasse
Welche Schlange ist die schnellste? Auch das ist ein Algorithmus â den dein Gehirn macht.
đ·
Face-ID
Dein Handy erkennt dein Gesicht in 0,2 Sekunden â dank eines Algorithmus.
Ein Kochrezept ist ein Algorithmus
đł Pfannkuchen-Rezept
- Mehl, Milch, Eier in SchĂŒssel geben
- Mit Schneebesen verrĂŒhren
- Pfanne erhitzen
- Etwas Teig in Pfanne geben
- Nach 2 Min. wenden
- Weitere 2 Min. braten
- Auf Teller legen
đ» Was das gemeinsam hat
- Eingabe: Zutaten
- Schritte: klar, nummeriert
- Reihenfolge: wichtig (erst rĂŒhren, dann braten!)
- Ausgabe: Pfannkuchen
- Endlich: irgendwann fertig
đĄ Merke: Jedes gute Rezept ist ein Algorithmus. Und jeder gute Algorithmus liest sich wie ein Rezept.
Die vier Eigenschaften eines Algorithmus
1ïžâŁ Endlich
Er hat eine klare Anzahl an Schritten und hört irgendwann auf.
"RĂŒhre 5 Minuten" â nicht "rĂŒhre fĂŒr immer"
2ïžâŁ Eindeutig
Jeder Schritt ist klar formuliert. Keine MissverstÀndnisse.
"Gib 200 g Mehl dazu" â nicht "ein bisschen Mehl"
3ïžâŁ AusfĂŒhrbar
Der Computer (oder Mensch) kann jeden Schritt wirklich umsetzen.
Nicht: "Teleportiere das Ei"
4ïžâŁ Liefert Ergebnis
Am Ende kommt die erwartete Ausgabe heraus.
Pfannkuchen. Nicht Kuchen.
Unser erster Algorithmus: Wechselgeld geben
Du arbeitest an einer Kasse. Ein Kunde kauft etwas fĂŒr 3,17 ⏠und gibt dir einen 5-âŹ-Schein.
5,00 ⏠â 3,17 ⏠= 1,83 ⏠zurĂŒck
Welche MĂŒnzen gibst du dem Kunden? Und zwar so wenige wie möglich (sonst wird seine Geldbörse dick).
2 âŹ
1 âŹ
50 ct
20 ct
10 ct
5 ct
2 ct
1 ct
VerfĂŒgbare MĂŒnzen
MĂŒnzwechsel â Schritt fĂŒr Schritt
Regel: nimm immer die gröĂte MĂŒnze, die noch in den Restbetrag passt.
Schritt 1
1 âŹ
â Rest:
0,83 âŹ
Schritt 2
50 ct
â Rest:
0,33 âŹ
Schritt 3
20 ct
â Rest:
0,13 âŹ
Schritt 4
10 ct
â Rest:
0,03 âŹ
Schritt 5
2 ct
â Rest:
0,01 âŹ
Schritt 6
1 ct
â Rest:
0,00 ⏠â
Ergebnis: 1 ⏠+ 50 ct + 20 ct + 10 ct + 2 ct + 1 ct = 6 MĂŒnzen. Fertig.
MĂŒnzwechsel â in C
void wechselgeld(int cent) {
int muenzen[] = {200, 100, 50, 20,
10, 5, 2, 1};
for (int i = 0; i < 8; i++) {
while (cent >= muenzen[i]) {
printf("%d Cent\n", muenzen[i]);
cent -= muenzen[i];
}
}
}
đĄ Beobachtung: Der Code ist fast wörtlich das, was wir gerade mit den MĂŒnzen gemacht haben. Genau das ist ein Algorithmus.
đź Vorgeschmack: Diese Strategie ("nimm immer das GröĂte zuerst") heiĂt Greedy. Wir treffen sie in Vorlesung 13 wieder.
Zweites Beispiel: eine Aufgabe fĂŒr GauĂ
Berechne: 1 + 2 + 3 + 4 + ... + 98 + 99 + 100
Das ist die Aufgabe, die ein Lehrer 1787 seiner Klasse gab â um die Kinder 30 Minuten zu beschĂ€ftigen.
đŠ Carl Friedrich GauĂ, 9 Jahre alt
... war nach wenigen Sekunden fertig. Er hatte einen Trick.
Schauen wir uns erst die naive Lösung an â dann den Trick.
Lösung A â einfach addieren
Der normale Ansatz: alle Zahlen nacheinander zusammenzÀhlen.
int summe_schleife(int n) {
int summe = 0;
for (int i = 1; i <= n; i++) {
summe += i;
}
return summe;
}
Bei n = 100: Der Computer addiert 100 Mal.
Bei n = 1.000.000: Der Computer addiert 1 Million Mal.
Bei n = 1 Milliarde: ... 1 Milliarde Additionen. Das dauert Sekunden!
GauĂ' Trick â Schritt 1: Paare bilden
Schreibe die Zahlen einmal vorwĂ€rts und einmal rĂŒckwĂ€rts, untereinander:
Jetzt die Spalten zusammenrechnen â
GauĂ' Trick â Schritt 2: alle Paare geben 101!
Magie: jede Spalte gibt dieselbe Summe â 101. Das ist der ganze Trick!
GauĂ' Trick â Schritt 3: multiplizieren
Wir haben 100 Spalten. Jede ergibt 101.
100 Ă 101 = 10.100
Aber Moment â wir haben jede Zahl zweimal gezĂ€hlt (einmal vorwĂ€rts, einmal rĂŒckwĂ€rts).
Also: durch 2 teilen!
10.100 Ă· 2 = 5.050
âš Fertig. Drei Rechenoperationen â statt hundert Additionen.
Die Formel von GauĂ
FĂŒr n Zahlen (1 bis n) funktioniert derselbe Trick:
- Es gibt n Spalten.
- Jede Spalte ergibt n + 1.
- Das ergibt n · (n + 1).
- Wir haben doppelt gezĂ€hlt â durch 2.
1 + 2 + ⊠+ n = n · (n+1) / 2
Probe: n=100 â 100 · 101 / 2 = 5.050 â
GauĂ-Formel in C
long long summe_gauss(long long n) {
return n * (n + 1) / 2;
}
đą Lösung A (Schleife)
Bei n = 1 Milliarde:
~ 3 Sekunden
1 Milliarde Additionen
đ Lösung B (GauĂ)
Bei n = 1 Milliarde:
< 0,000001 s
3 Rechenoperationen
Die groĂe Erkenntnis
Beide Lösungen laufen auf demselben Computer.
Beide ergeben dasselbe Ergebnis.
Der Unterschied liegt nur im Algorithmus.
Eine schlaue Idee schlÀgt jeden schnellen Prozessor.
Darum lohnt es sich, Algorithmen zu studieren â auch wenn der Computer sehr schnell ist.
Drittes Beispiel: Palindrom?
Ein Palindrom ist ein Wort, das vorwĂ€rts und rĂŒckwĂ€rts gleich gelesen wird.
Frage: Wie kann ein Computer das prĂŒfen?
Palindrom-Algorithmus: von auĂen nach innen
Wir vergleichen erstes mit letztem, zweites mit vorletztem, und so weiter.
Beispiel: ANNA
Schritt 2
A
N
N
A
N = N â â Palindrom!
Beispiel: HALLO
Schritt 1
H
A
L
L
O
H â O â â kein Palindrom (Abbruch!)
đĄ Smart: Sobald ein Paar nicht passt, brechen wir ab. Nicht alle Buchstaben prĂŒfen!
Palindrom â in C
int ist_palindrom(char wort[], int n) {
int links = 0;
int rechts = n - 1;
while (links < rechts) {
if (wort[links] != wort[rechts]) {
return 0;
}
links++;
rechts--;
}
return 1;
}
đĄ Beobachtung: Zwei Variablen links und rechts wandern aufeinander zu. Sobald ein Paar nicht passt â sofort raus. Schneller geht es nicht.
Wie viele Schritte braucht ein Algorithmus?
Bisher haben wir drei Algorithmen gesehen. ZĂ€hlen wir mal, wie viele Schritte sie brauchen:
| Algorithmus | EingabegröĂe | Schritte ungefĂ€hr |
| MĂŒnzwechsel | Betrag in Cent | höchstens 8 MĂŒnzsorten Ă wenige MĂŒnzen |
| Summe (Schleife) | Zahl n | n Additionen |
| Summe (GauĂ-Formel) | Zahl n | 3 Operationen (immer!) |
| Palindrom | Wort mit n Buchstaben | höchstens n/2 Vergleiche |
đź Vorschau: Manche Algorithmen wachsen mit der Eingabe, andere nicht. Diesen Unterschied mathematisch beschreiben lernen wir in Vorlesung 5 â die Big-O-Notation.
Mini-Ăbung: Erfinde deinen eigenen Algorithmus
đ Beispiel: "Ein Glas Wasser holen"
- Stehe vom Stuhl auf
- Gehe in die KĂŒche
- Ăffne den Schrank, nimm ein Glas heraus
- Halte es unter den Wasserhahn
- Drehe den Hahn auf, warte bis das Glas voll ist, drehe zu
- Trinke đ„€
Jetzt du: schreibe Schritt fĂŒr Schritt einen Algorithmus fĂŒr âŠ
- đŠ· ZĂ€hne putzen
- đ Pizza online bestellen
- đ Ein bestimmtes Buch in der Bibliothek finden
Tipp: jeder Schritt muss eindeutig sein. "Mach es einfach schön" zÀhlt nicht!
đ§ Quiz 1
Welche dieser Anweisungen ist kein Algorithmus?
A) Rezept fĂŒr Apfelkuchen
B) Schritt-fĂŒr-Schritt-Anleitung zum Schuhe binden
C) âMach die Wohnung einfach schön"
D) Python-Programm, das Primzahlen berechnet
Tipp: Ein Algorithmus muss eindeutig sein.
đ§ Quiz 2
Du sollst die Summe 1+2+âŠ+1000 berechnen. Welcher Weg ist klĂŒger?
A) 1000 Zahlen einzeln mit dem Taschenrechner addieren
B) GauĂ-Formel: 1000 · 1001 / 2 = 500.500
C) Einen schnelleren Taschenrechner kaufen
D) Google fragen
Ein besserer Algorithmus schlÀgt einen besseren Rechner.
Zusammenfassung
- Ein Algorithmus ist eine klare Schritt-fĂŒr-Schritt-Anleitung von Input zu Output.
- Er muss endlich, eindeutig, ausfĂŒhrbar sein und ein Ergebnis liefern.
- Wir haben drei Algorithmen gesehen: MĂŒnzwechsel (Greedy), Summe (Schleife & GauĂ), Palindrom.
- Der GauĂ-Trick zeigt: eine clevere Idee kann Milliarden Operationen sparen.
- Manche Algorithmen haben immer gleich viele Schritte, andere wachsen mit der Eingabe.
đ NĂ€chste Woche: Unser erster groĂer Algorithmen-Klassiker â Sortieren. Wir bringen Ordnung ins Chaos mit Bubble-, Selection- und Insertion-Sort.
Wichtig fĂŒr spĂ€ter
- â
Was ein Algorithmus ist, in eigenen Worten erklÀren können
- â
Die vier Eigenschaften: endlich, eindeutig, ausfĂŒhrbar, Ergebnis
- â
Den GauĂ-Trick nachvollziehen (Paare mit Summe n+1)
- â
Zu erkennen, dass ein guter Algorithmus Milliarden Operationen sparen kann
Prof. Dr. Alexandra Mikityuk
HTW Berlin
Viel SpaĂ beim Ausprobieren im Lab!
© 2026 Prof. Dr. Alexandra Mikityuk | HTW Berlin