algorithmen und datenstrukturen - übung 1 · pdf file s. friedrichs (tu braunschweig,...
TRANSCRIPT
![Page 1: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/1.jpg)
Algorithmen und DatenstrukturenUbung 1
Stephan Friedrichs
Technische Universitat Braunschweig, IBR
31. Oktober 2013
![Page 2: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/2.jpg)
Programm fur Heute
1 Organisatorisches
2 Ubung• Probleme und Instanzen• Algorithmen (Pseudocode, Kontrollstrukturen, . . . )• Problemvarianten
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 2
![Page 3: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/3.jpg)
Organisatorisches
![Page 4: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/4.jpg)
Diese Folien. . .
. . . braucht man nicht abzuschreiben
. . . stehen im Netz unterhttp://www.ibr.cs.tu-bs.de/courses/ws1314/aud/
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 4
![Page 5: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/5.jpg)
Apropos Vorlesungshomepage
• http://www.ibr.cs.tu-bs.de/courses/ws1314/aud/
• Alle Termine
• Materialien zu Vorlesung / großer Ubung / kleiner Ubung
• Ubungsblatter
• Ankundigungen
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 5
![Page 6: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/6.jpg)
Mailingliste
• Naturlich aufhttp://www.ibr.cs.tu-bs.de/courses/ws1314/aud/
• Hier samtliche Ankudigungen!
• Fragen zum Stoff
• Auch alle Hiwis erreichbar
1 Registrieren
2 Mail des Listenservers abwarten
3 Darauf antworten
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 6
![Page 7: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/7.jpg)
Mailingliste
• Naturlich aufhttp://www.ibr.cs.tu-bs.de/courses/ws1314/aud/
• Hier samtliche Ankudigungen!
• Fragen zum Stoff
• Auch alle Hiwis erreichbar
1 Registrieren
2 Mail des Listenservers abwarten
3 Darauf antworten
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 6
![Page 8: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/8.jpg)
Mailingliste
• Naturlich aufhttp://www.ibr.cs.tu-bs.de/courses/ws1314/aud/
• Hier samtliche Ankudigungen!
• Fragen zum Stoff
• Auch alle Hiwis erreichbar
1 Registrieren
2 Mail des Listenservers abwarten
3 Darauf antworten
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 6
![Page 9: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/9.jpg)
Algorithmen und Datenstrukturen
VorlesungGroße UbungKleine Ubung
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 7
![Page 10: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/10.jpg)
Vorlesung
• Neuer Inhalt
• Theorie, Beweise
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 8
![Page 11: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/11.jpg)
Große Ubung
• Aufarbeitung/Erganzung des Vorlesungsstoffs
• Fragenstellen ist ausdrucklich erlaubt! :)
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 9
![Page 12: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/12.jpg)
Kleine Ubung
• Ruckgabe/Besprechung der Hausaufgaben
• In kleiner Runde (ca. 20/Gruppe) uber den Stoff sprechen
• Nachste Woche geht’s los!
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 10
![Page 13: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/13.jpg)
Kleine Ubung – Anmeldung
• Anmeldung aufhttp://www.ibr.cs.tu-bs.de/courses/ws1314/aud/
• Freigeschaltet ab heute 13:00 bis Montag 13:00
• Je Termin yes/ifneedbe/no
• Bitte so viele yes/ifneedbes wie moglich!
• Wir werten pro Person die neueste Anmeldung
• Kein First come, first serve kein Stress :)
• Bei technischen Problemen: Meldet euch!http://www.ibr.cs.tu-bs.de/users/sfriedr/
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 11
![Page 14: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/14.jpg)
Kleine Ubung – Anmeldung
• Anmeldung aufhttp://www.ibr.cs.tu-bs.de/courses/ws1314/aud/
• Freigeschaltet ab heute 13:00 bis Montag 13:00
• Je Termin yes/ifneedbe/no
• Bitte so viele yes/ifneedbes wie moglich!
• Wir werten pro Person die neueste Anmeldung
• Kein First come, first serve kein Stress :)
• Bei technischen Problemen: Meldet euch!http://www.ibr.cs.tu-bs.de/users/sfriedr/
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 11
![Page 15: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/15.jpg)
Kleine Ubung – Anmeldung
• Anmeldung aufhttp://www.ibr.cs.tu-bs.de/courses/ws1314/aud/
• Freigeschaltet ab heute 13:00 bis Montag 13:00
• Je Termin yes/ifneedbe/no
• Bitte so viele yes/ifneedbes wie moglich!
• Wir werten pro Person die neueste Anmeldung
• Kein First come, first serve kein Stress :)
• Bei technischen Problemen: Meldet euch!http://www.ibr.cs.tu-bs.de/users/sfriedr/
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 11
![Page 16: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/16.jpg)
Apropos Hausaufgaben. . .
• 7 Ubungsblatter, die ersten 2 unbewertet
• 14-tagig aufhttp://www.ibr.cs.tu-bs.de/courses/ws1314/aud/
• Bearbeitungszeit: 14 Tage
• Abgabe: Bis Mittwoch 13:00, zwischen IZ 337 und IZ 338
• Ruckgabe/Besprechung: 14 Tage spater, kleine Ubung
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 12
![Page 17: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/17.jpg)
Apropos Hausaufgaben. . .
• 7 Ubungsblatter, die ersten 2 unbewertet
• 14-tagig aufhttp://www.ibr.cs.tu-bs.de/courses/ws1314/aud/
• Bearbeitungszeit: 14 Tage
• Abgabe: Bis Mittwoch 13:00, zwischen IZ 337 und IZ 338
• Ruckgabe/Besprechung: 14 Tage spater, kleine Ubung
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 12
![Page 18: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/18.jpg)
Apropos Hausaufgaben. . .
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 13
![Page 19: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/19.jpg)
Apropos Hausaufgaben. . .
zusammen arbeiten, einzeln aufschreiben
Studienleistung: 50% der Hausaufgabenpunkte
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 14
![Page 20: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/20.jpg)
SemesterubersichtAlgorithmen und Datenstrukturen
(Winter 2013/2014)
KW (ab) VL Di+Mi
Gr. UEDo
Kl. UEMi/Do/Fr
HA AusgabeMi abends
HA AbgabeMi bis 13:00
HA Rückgabe(in kleiner UE)
43 (21.10.)44 (28.10.) 1, 2 1 H0a*, H0b*
45 (4.11.) 3, 4 2 1 H1 H0a*
46 (11.11.) 5, 647 (18.11.) 7, 8 3 2 H2 H1 H0b*
48 (25.11.) 9, 1049 (2.12.) 11, 12 4 3 H3 H2 H150 (9.12.) 13, 1451 (16.12.) 15, 16 5 4 H4 H3 H252 (23.12.) Weihnachtsferien1 (30.12.)2 (6.1.) 17, 18 6 5 H5 H4 H33 (13.1.) 19, 204 (20.1.) 21, 22 7 6 H5 H45 (27.1.) 23, 246 (3.2.) 25, 26 8 7 H5*) Geht nicht in die Wertung ein
Homepage: http://www.ibr.cs.tu-bs.de/courses/ws1314/aud/
Mailingliste: http://mail.ibr.cs.tu-bs.de/mailman/listinfo/aud/
Einteilung der Übungsgruppen, Unterlagen, Hausaufgaben, Klausurtermin, etc.: Siehe Homepage
Ohne Gewahr!
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 15
![Page 21: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/21.jpg)
Klausur
Die Klausur ist am 25. 02. 2014
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 16
![Page 22: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/22.jpg)
Fragen
Fragen sind ausdrucklich erwunscht! :)Zum Beispiel. . .
. . . vor / wahrend / nach derVorlesung / großer Ubung / kleiner Ubung
. . . auf der Mailingliste
. . . in Prof. Dr. Sandor P. Feketes Sprechstunde(Mittwoch 13:15 – 14:00,http://www.ibr.cs.tu-bs.de/users/fekete/)
. . . in meiner Sprechstunde(Nach Vereinbarung,http://www.ibr.cs.tu-bs.de/users/sfriedr/)
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 17
![Page 23: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/23.jpg)
Fragen
Fragen sind ausdrucklich erwunscht! :)Zum Beispiel. . .
. . . vor / wahrend / nach derVorlesung / großer Ubung / kleiner Ubung
. . . auf der Mailingliste
. . . in Prof. Dr. Sandor P. Feketes Sprechstunde(Mittwoch 13:15 – 14:00,http://www.ibr.cs.tu-bs.de/users/fekete/)
. . . in meiner Sprechstunde(Nach Vereinbarung,http://www.ibr.cs.tu-bs.de/users/sfriedr/)
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 17
![Page 24: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/24.jpg)
Fragen
Fragen sind ausdrucklich erwunscht! :)Zum Beispiel. . .
. . . vor / wahrend / nach derVorlesung / großer Ubung / kleiner Ubung
. . . auf der Mailingliste
. . . in Prof. Dr. Sandor P. Feketes Sprechstunde(Mittwoch 13:15 – 14:00,http://www.ibr.cs.tu-bs.de/users/fekete/)
. . . in meiner Sprechstunde(Nach Vereinbarung,http://www.ibr.cs.tu-bs.de/users/sfriedr/)
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 17
![Page 25: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/25.jpg)
Fragerunde
![Page 26: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/26.jpg)
Algorithmen
![Page 27: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/27.jpg)
Probleme und Instanzen
ProblemAllgemeine Fragestellung, oft formuliert mit Hilfe von
• Eingabe (was ist bekannt?)
• Ausgabe (was ist gesucht?)
InstanzKonkrete Eingabe eines Problems
Losung des Problems
Algorithmus
Losung einer Instanz
Konkrete Ausgabe
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 20
![Page 28: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/28.jpg)
Probleme und Instanzen
ProblemAllgemeine Fragestellung, oft formuliert mit Hilfe von
• Eingabe (was ist bekannt?)
• Ausgabe (was ist gesucht?)
InstanzKonkrete Eingabe eines Problems
Losung des Problems
Algorithmus
Losung einer Instanz
Konkrete Ausgabe
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 20
![Page 29: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/29.jpg)
Probleme und Instanzen
LösungProblem und Instanzen
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 21
![Page 30: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/30.jpg)
Probleme und Instanzen
Problem:GGT
LösungProblem und Instanzen
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 21
![Page 31: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/31.jpg)
Probleme und Instanzen
Problem:GGT
144, 729
...15, 24
Inst
an
z von
Inst
anz v
on
Inst
anz
von
LösungProblem und Instanzen
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 21
![Page 32: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/32.jpg)
Probleme und Instanzen
Problem:GGT
144, 729
...15, 24
Inst
an
z von
Inst
anz v
on
Inst
anz
von
Lösung
9
3
...
Problem und Instanzen
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 21
![Page 33: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/33.jpg)
Probleme und Instanzen
Problem:GGT
144, 729
...15, 24
Inst
an
z von
Inst
anz v
on
Inst
anz
von
Lösung
EuklidischerAlgorithmus
9
3
...
Problem und Instanzen
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 21
![Page 34: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/34.jpg)
AlgorithmenEin Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz einesProblems eine Losung liefert. Wichtig dabei:
• Endlicher Text
• Endliche Laufzeit
• Definiertheit
• Elementare Operationen
(frei nach Knuth)
AlgorithmusEingabe Ausgabeendlich, definiert,
elementar
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 22
![Page 35: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/35.jpg)
Notation, Abstraktion
Wie aufschreiben?
Programmiersprache
• viele Details
• viel (uninteressanter) Code
• abhangig von Maschine
• (bald?) nicht mehr aktuell
⇒ Programmieren I und II, SEP, Teamprojekt, . . .
Pseudocode
• Abstraktionsgrad frei wahlbar
• Konzentration aufs Wesentliche
• Unabhangig von aktuellen Sprachen
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 23
![Page 36: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/36.jpg)
Notation, Abstraktion
Wie aufschreiben?
Programmiersprache
• viele Details
• viel (uninteressanter) Code
• abhangig von Maschine
• (bald?) nicht mehr aktuell
⇒ Programmieren I und II, SEP, Teamprojekt, . . .
Pseudocode
• Abstraktionsgrad frei wahlbar
• Konzentration aufs Wesentliche
• Unabhangig von aktuellen Sprachen
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 23
![Page 37: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/37.jpg)
Notation, Abstraktion
Wie aufschreiben?
Programmiersprache
• viele Details
• viel (uninteressanter) Code
• abhangig von Maschine
• (bald?) nicht mehr aktuell
⇒ Programmieren I und II, SEP, Teamprojekt, . . .
Pseudocode
• Abstraktionsgrad frei wahlbar
• Konzentration aufs Wesentliche
• Unabhangig von aktuellen Sprachen
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 23
![Page 38: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/38.jpg)
Beispiel: Minimum zweier Zahlen
ProblemMinimum zweier Zahlen
Eingabe Zwei Zahlen x , y ∈ RAusgabe x wenn x ≤ y , sonst y
Instanz144, 729.78
Losung des Problems
Nachste Folie
Losung der Instanz
144
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 24
![Page 39: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/39.jpg)
Beispiel: Minimum zweier Zahlen
ProblemMinimum zweier Zahlen
Eingabe Zwei Zahlen x , y ∈ RAusgabe x wenn x ≤ y , sonst y
Instanz144, 729.78
Losung des Problems
Nachste Folie
Losung der Instanz
144
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 24
![Page 40: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/40.jpg)
Beispiel: Minimum zweier Zahlen
1: function min(x , y)2: m← y
3: if x ≤ y then4: m← x5: end if
6: return m7: end function
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 25
![Page 41: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/41.jpg)
Lessons Learned: Variablen
Variablen liegen im Speicher und enthalten Werte (nicht nur Zahlen!).Diese durfen verandert werden.
1: i ← 02: i ← 53: i ← i + 1
4: M ← {0, 1, 2}5: M ← M ∪ {2, 3}
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 26
![Page 42: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/42.jpg)
Lessons Learned: Fallunterscheidungen
Bool’sche Ausdrucke Bi sind entweder wahr (true) oder falsch (false).
1: if B1 then2: wird ausgefuhrt, wenn B1 true ist3: end if
alternativ mit else:
1: if B1 then2: wird ausgefuhrt, wenn B1 true ist3: else4: wird ausgefuhrt, wenn B1 false ist5: end if
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 27
![Page 43: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/43.jpg)
Lessons Learned: Fallunterscheidungen
Bool’sche Ausdrucke Bi sind entweder wahr (true) oder falsch (false).
1: if B1 then2: wird ausgefuhrt, wenn B1 true ist3: end if
alternativ mit else:
1: if B1 then2: wird ausgefuhrt, wenn B1 true ist3: else4: wird ausgefuhrt, wenn B1 false ist5: end if
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 27
![Page 44: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/44.jpg)
Lessons Learned: Fallunterscheidungen
Bool’sche Ausdrucke Bi sind entweder wahr (true) oder falsch (false).
1: if B1 then2: wird ausgefuhrt, wenn B1 true ist3: else if B2 then4: wird ausgefuhrt, wenn B1 false und B2 true ist
5:...
6: else if Bn then7: wird ausgefuhrt, wenn alle B1, . . . ,Bn−1 false und Bn true ist8: else9: wird ausgefuhrt, wenn alle B1, . . . ,Bn false sind
10: end if
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 27
![Page 45: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/45.jpg)
Beispiel: Fakultat
ProblemFakultat einer Zahl berechnen
Eingabe Naturliche Zahl n ∈ NAusgabe 1 · 2 · . . . · (n − 1) · n; oder 1 falls n = 0
Instanz5
Losung des Problems
Nachste Folie
Losung der Instanz
1 · 2 · 3 · 4 · 5 = 120
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 28
![Page 46: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/46.jpg)
Beispiel: Fakultat
ProblemFakultat einer Zahl berechnen
Eingabe Naturliche Zahl n ∈ NAusgabe 1 · 2 · . . . · (n − 1) · n; oder 1 falls n = 0
Instanz5
Losung des Problems
Nachste Folie
Losung der Instanz
1 · 2 · 3 · 4 · 5 = 120
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 28
![Page 47: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/47.jpg)
Beispiel: Fakultat
1: function factorial(n)2: f ← 13: i ← 1
4: while i ≤ n do5: f ← f · i6: i ← i + 17: end while
8: return f9: end function
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 29
![Page 48: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/48.jpg)
Beispiel: Fakultat
1: function factorial(n)2: f ← 13: i ← 1
4: while i ≤ n do5: f ← f · i6: i ← i + 17: end while
8: return f9: end function
5! = 1 · 2 · 3 · 4 · 5Ablauf fur n = 5
Zeitpunkt f i
Vor der Schleife 1 1Nach dem 1. Durchlauf 1 2Nach dem 2. Durchlauf 2 3Nach dem 3. Durchlauf 6 4Nach dem 4. Durchlauf 24 5Nach dem 5. Durchlauf 120 6
Nach dem 5. Durchlauf gilt i ≤ nnicht mehr
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 30
![Page 49: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/49.jpg)
Beispiel: Fakultat
1: function factorial(n)2: f ← 13: i ← 1
4: while i ≤ n do5: f ← f · i6: i ← i + 17: end while
8: return f9: end function
5! = 1 · 2 · 3 · 4 · 5Ablauf fur n = 5
Zeitpunkt f i
Vor der Schleife 1 1
Nach dem 1. Durchlauf 1 2Nach dem 2. Durchlauf 2 3Nach dem 3. Durchlauf 6 4Nach dem 4. Durchlauf 24 5Nach dem 5. Durchlauf 120 6
Nach dem 5. Durchlauf gilt i ≤ nnicht mehr
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 30
![Page 50: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/50.jpg)
Beispiel: Fakultat
1: function factorial(n)2: f ← 13: i ← 1
4: while i ≤ n do5: f ← f · i6: i ← i + 17: end while
8: return f9: end function
5! = 1 · 2 · 3 · 4 · 5Ablauf fur n = 5
Zeitpunkt f i
Vor der Schleife 1 1Nach dem 1. Durchlauf 1 2
Nach dem 2. Durchlauf 2 3Nach dem 3. Durchlauf 6 4Nach dem 4. Durchlauf 24 5Nach dem 5. Durchlauf 120 6
Nach dem 5. Durchlauf gilt i ≤ nnicht mehr
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 30
![Page 51: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/51.jpg)
Beispiel: Fakultat
1: function factorial(n)2: f ← 13: i ← 1
4: while i ≤ n do5: f ← f · i6: i ← i + 17: end while
8: return f9: end function
5! = 1 · 2 · 3 · 4 · 5Ablauf fur n = 5
Zeitpunkt f i
Vor der Schleife 1 1Nach dem 1. Durchlauf 1 2Nach dem 2. Durchlauf 2 3
Nach dem 3. Durchlauf 6 4Nach dem 4. Durchlauf 24 5Nach dem 5. Durchlauf 120 6
Nach dem 5. Durchlauf gilt i ≤ nnicht mehr
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 30
![Page 52: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/52.jpg)
Beispiel: Fakultat
1: function factorial(n)2: f ← 13: i ← 1
4: while i ≤ n do5: f ← f · i6: i ← i + 17: end while
8: return f9: end function
5! = 1 · 2 · 3 · 4 · 5Ablauf fur n = 5
Zeitpunkt f i
Vor der Schleife 1 1Nach dem 1. Durchlauf 1 2Nach dem 2. Durchlauf 2 3Nach dem 3. Durchlauf 6 4
Nach dem 4. Durchlauf 24 5Nach dem 5. Durchlauf 120 6
Nach dem 5. Durchlauf gilt i ≤ nnicht mehr
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 30
![Page 53: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/53.jpg)
Beispiel: Fakultat
1: function factorial(n)2: f ← 13: i ← 1
4: while i ≤ n do5: f ← f · i6: i ← i + 17: end while
8: return f9: end function
5! = 1 · 2 · 3 · 4 · 5Ablauf fur n = 5
Zeitpunkt f i
Vor der Schleife 1 1Nach dem 1. Durchlauf 1 2Nach dem 2. Durchlauf 2 3Nach dem 3. Durchlauf 6 4Nach dem 4. Durchlauf 24 5
Nach dem 5. Durchlauf 120 6Nach dem 5. Durchlauf gilt i ≤ nnicht mehr
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 30
![Page 54: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/54.jpg)
Beispiel: Fakultat
1: function factorial(n)2: f ← 13: i ← 1
4: while i ≤ n do5: f ← f · i6: i ← i + 17: end while
8: return f9: end function
5! = 1 · 2 · 3 · 4 · 5Ablauf fur n = 5
Zeitpunkt f i
Vor der Schleife 1 1Nach dem 1. Durchlauf 1 2Nach dem 2. Durchlauf 2 3Nach dem 3. Durchlauf 6 4Nach dem 4. Durchlauf 24 5Nach dem 5. Durchlauf 120 6
Nach dem 5. Durchlauf gilt i ≤ nnicht mehr
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 30
![Page 55: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/55.jpg)
Beispiel: Fakultat
1: function factorial(n)2: f ← 13: i ← 1
4: while i ≤ n do5: f ← f · i6: i ← i + 17: end while
8: return f9: end function
5! = 1 · 2 · 3 · 4 · 5Ablauf fur n = 5
Zeitpunkt f i
Vor der Schleife 1 1Nach dem 1. Durchlauf 1 2Nach dem 2. Durchlauf 2 3Nach dem 3. Durchlauf 6 4Nach dem 4. Durchlauf 24 5Nach dem 5. Durchlauf 120 6
Nach dem 5. Durchlauf gilt i ≤ nnicht mehr
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 30
![Page 56: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/56.jpg)
Lessons Learned: Schleifen
Fuhrt einen Codeblock wiederholt aus, bis die bool’sche Bedingung Bnicht mehr gilt
1: while B do2: wird so oft ausgefuhrt, bis B false ist3: end while
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 31
![Page 57: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/57.jpg)
For-Notation
Typische Abkurzung fur Standardschleifen:
Kurzform I:
1: function factorial(n)2: f ← 1
3: for i ← 1, . . . , n do4: f ← f · i5: end for
6: return f7: end function
Ursprungliche Version:
1: function factorial(n)2: f ← 13: i ← 1
4: while i ≤ n do5: f ← f · i6: i ← i + 17: end while
8: return f9: end function
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 32
![Page 58: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/58.jpg)
For-Notation
Typische Abkurzung fur Standardschleifen:
Kurzform I:
1: function factorial(n)2: f ← 1
3: for i ← 1, . . . , n do4: f ← f · i5: end for
6: return f7: end function
Ursprungliche Version:
1: function factorial(n)2: f ← 13: i ← 1
4: while i ≤ n do5: f ← f · i6: i ← i + 17: end while
8: return f9: end function
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 32
![Page 59: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/59.jpg)
For-Notation
Typische Abkurzung fur Standardschleifen:
Kurzform I:
1: function factorial(n)2: f ← 1
3: for i ← 1, . . . , n do4: f ← f · i5: end for
6: return f7: end function
Ursprungliche Version:
1: function factorial(n)2: f ← 13: i ← 1
4: while i ≤ n do5: f ← f · i6: i ← i + 17: end while
8: return f9: end function
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 32
![Page 60: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/60.jpg)
For-Notation
Typische Abkurzung fur Standardschleifen:
Kurzform II:
1: function factorial(n)2: f ← 1
3: for all i ∈ {1, . . . , n} do4: f ← f · i5: end for
6: return f7: end function
Ursprungliche Version:
1: function factorial(n)2: f ← 13: i ← 1
4: while i ≤ n do5: f ← f · i6: i ← i + 17: end while
8: return f9: end function
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 32
![Page 61: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/61.jpg)
Beispiel: Minimum aus Menge
ProblemMinimum in einer Menge von Zahlen finden
Eingabe Reelle Zahlen a1, . . . , an (mindestens eine, n ≥ 1)
Ausgabe Dasjenige ai mit ai ≤ aj fur alle j = 1, . . . , n
Instanza1 = 4, a2 = 1, a3 = 5, a4 = −7, a5 = 0.5
Losung des Problems
Nachste Folie
Losung der Instanz
−7
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 33
![Page 62: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/62.jpg)
Beispiel: Minimum aus Menge
ProblemMinimum in einer Menge von Zahlen finden
Eingabe Reelle Zahlen a1, . . . , an (mindestens eine, n ≥ 1)
Ausgabe Dasjenige ai mit ai ≤ aj fur alle j = 1, . . . , n
Instanza1 = 4, a2 = 1, a3 = 5, a4 = −7, a5 = 0.5
Losung des Problems
Nachste Folie
Losung der Instanz
−7
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 33
![Page 63: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/63.jpg)
Beispiel: Minimum aus Menge
1: function minimum(a1, . . . , an)2: m← a1
3: for i ← 2, . . . , n do4: m← min(m, ai ) . Aufruf des Algorithmus’ von oben!5: end for
6: return m7: end function
i
m = min{a1, . . . , ai−1}
1 n
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 34
![Page 64: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/64.jpg)
Beispiel: Minimum aus Menge
1: function minimum(a1, . . . , an)2: m← a1
3: for i ← 2, . . . , n do4: m← min(m, ai ) . Aufruf des Algorithmus’ von oben!5: end for
6: return m7: end function
i
m = min{a1, . . . , ai−1}
1 n
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 34
![Page 65: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/65.jpg)
Lessons Learned: Funktionsaufrufe
Eben:...m← min(m, ai )...
Ganz am Anfang:
1: function min(x , y)2: m← y
3: if x ≤ y then4: m← x5: end if
6: return m7: end function
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 35
![Page 66: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/66.jpg)
Beispiel: Zahl in Menge suchen
ProblemHerausfinden, ob sich eine Zahl x in einer gegebenen Menge von Zahlenbefindet
Eingabe Reelle Zahl x , reelle Zahlen a1, . . . , an (mindestens eine,n ≥ 1)
Ausgabe True, falls x = ai fur ein 1 ≤ i ≤ n; False sonst
Instanzx = 6, a1 = 4, a2 = 1, a3 = 5, a4 = −7, a5 = 0.5
Losung des Problems
Nachste Folie
Losung der Instanz
False
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 36
![Page 67: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/67.jpg)
Beispiel: Zahl in Menge suchen
ProblemHerausfinden, ob sich eine Zahl x in einer gegebenen Menge von Zahlenbefindet
Eingabe Reelle Zahl x , reelle Zahlen a1, . . . , an (mindestens eine,n ≥ 1)
Ausgabe True, falls x = ai fur ein 1 ≤ i ≤ n; False sonst
Instanzx = 6, a1 = 4, a2 = 1, a3 = 5, a4 = −7, a5 = 0.5
Losung des Problems
Nachste Folie
Losung der Instanz
False
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 36
![Page 68: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/68.jpg)
Beispiel: Zahl in Menge suchen
1: function find(x , a1, . . . , an)2: for i ← 1, . . . , n do3: if x = ai then4: return True5: end if6: end for
7: return False8: end function
Das ist langsam, im schlimmstenFall n Vergleiche!
Geht das schneller?
Nein, x konnte ja uberall sein!
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 37
![Page 69: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/69.jpg)
Beispiel: Zahl in Menge suchen
1: function find(x , a1, . . . , an)2: for i ← 1, . . . , n do3: if x = ai then4: return True5: end if6: end for
7: return False8: end function
Das ist langsam, im schlimmstenFall n Vergleiche!
Geht das schneller?
Nein, x konnte ja uberall sein!
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 37
![Page 70: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/70.jpg)
Beispiel: Zahl in Menge suchen
1: function find(x , a1, . . . , an)2: for i ← 1, . . . , n do3: if x = ai then4: return True5: end if6: end for
7: return False8: end function
Das ist langsam, im schlimmstenFall n Vergleiche!
Geht das schneller?
Nein, x konnte ja uberall sein!
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 37
![Page 71: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/71.jpg)
Beispiel: Zahl in Menge suchen
1: function find(x , a1, . . . , an)2: for i ← 1, . . . , n do3: if x = ai then4: return True5: end if6: end for
7: return False8: end function
Das ist langsam, im schlimmstenFall n Vergleiche!
Geht das schneller?
Nein, x konnte ja uberall sein!
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 37
![Page 72: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/72.jpg)
Problemvariante
Es geht so nicht schneller. . .
⇒ Also das Problem verandern!
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 38
![Page 73: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/73.jpg)
Problemvariante
Es geht so nicht schneller. . .⇒ Also das Problem verandern!
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 38
![Page 74: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/74.jpg)
Beispiel: Zahl in sortierter Menge suchen
ProblemHerausfinden, ob sich eine Zahl x in einer sortierten Menge von Zahlenbefindet
Eingabe Reelle Zahl x , reelle Zahlen a1 ≤ · · · ≤ an (mindestens eine,n ≥ 1)
Ausgabe True, falls x = ai fur ein 1 ≤ i ≤ n; False sonst
Instanzx = 6, a1 = −7, a2 = 0.5, a3 = 1, a4 = 4, a5 = 5
Losung des Problems
Nachste Folie
Losung der Instanz
False
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 39
![Page 75: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/75.jpg)
Beispiel: Zahl in sortierter Menge suchen
ProblemHerausfinden, ob sich eine Zahl x in einer sortierten Menge von Zahlenbefindet
Eingabe Reelle Zahl x , reelle Zahlen a1 ≤ · · · ≤ an (mindestens eine,n ≥ 1)
Ausgabe True, falls x = ai fur ein 1 ≤ i ≤ n; False sonst
Instanzx = 6, a1 = −7, a2 = 0.5, a3 = 1, a4 = 4, a5 = 5
Losung des Problems
Nachste Folie
Losung der Instanz
False
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 39
![Page 76: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/76.jpg)
Beispiel: Zahl in sortierter Menge suchen
1: functionbinary search(x , a1, . . . , an)
2: i ← 13: j ← n4: while i < j do
5: k ←⌈i+j2
⌉6: if x < ak then7: j ← k − 18: else9: i ← k
10: end if11: end while12: return ai = x13: end function
i jk
i jk
i k = j
i = j
i k j
• ai ≤ x ≤ aj(oder x < a1 oder an < x)
• (j − i) halbiert sich immer
• Nur log2(n) Vergleiche!
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 40
![Page 77: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/77.jpg)
Beispiel: Zahl in sortierter Menge suchen
1: functionbinary search(x , a1, . . . , an)
2: i ← 13: j ← n4: while i < j do
5: k ←⌈i+j2
⌉6: if x < ak then7: j ← k − 18: else9: i ← k
10: end if11: end while12: return ai = x13: end function
i jk
i jk
i k = j
i = j
i k j
• ai ≤ x ≤ aj(oder x < a1 oder an < x)
• (j − i) halbiert sich immer
• Nur log2(n) Vergleiche!
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 40
![Page 78: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/78.jpg)
Beispiel: Zahl in sortierter Menge suchen
1: functionbinary search(x , a1, . . . , an)
2: i ← 13: j ← n4: while i < j do
5: k ←⌈i+j2
⌉6: if x < ak then7: j ← k − 18: else9: i ← k
10: end if11: end while12: return ai = x13: end function
i jk
i jk
i k = j
i = j
i k j
• ai ≤ x ≤ aj(oder x < a1 oder an < x)
• (j − i) halbiert sich immer
• Nur log2(n) Vergleiche!
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 40
![Page 79: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/79.jpg)
Beispiel: Zahl in sortierter Menge suchen
1: functionbinary search(x , a1, . . . , an)
2: i ← 13: j ← n4: while i < j do
5: k ←⌈i+j2
⌉6: if x < ak then7: j ← k − 18: else9: i ← k
10: end if11: end while12: return ai = x13: end function
i jk
i jk
i k = j
i = j
i k j
• ai ≤ x ≤ aj(oder x < a1 oder an < x)
• (j − i) halbiert sich immer
• Nur log2(n) Vergleiche!
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 40
![Page 80: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/80.jpg)
Beispiel: Zahl in sortierter Menge suchen
1: functionbinary search(x , a1, . . . , an)
2: i ← 13: j ← n4: while i < j do
5: k ←⌈i+j2
⌉6: if x < ak then7: j ← k − 18: else9: i ← k
10: end if11: end while12: return ai = x13: end function
i jk
i jk
i k = j
i = j
i k j
• ai ≤ x ≤ aj(oder x < a1 oder an < x)
• (j − i) halbiert sich immer
• Nur log2(n) Vergleiche!
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 40
![Page 81: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/81.jpg)
Lessons Learned: Problemvarianten
Geanderte Probleme ermoglichen/erfordern andere Algorithmen!
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 41
![Page 82: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/82.jpg)
Programm fur Heute
1 Organisatorisches
2 Ubung• Probleme und Instanzen• Algorithmen (Pseudocode, Kontrollstrukturen, . . . )• Problemvarianten
S. Friedrichs (TU Braunschweig, IBR) | Algorithmen und Datenstrukturen 42
![Page 83: Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines](https://reader036.vdocuments.site/reader036/viewer/2022062413/5a79ef617f8b9a3d058bde99/html5/thumbnails/83.jpg)
Fragen?