Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig,...

83
Algorithmen und Datenstrukturen ¨ Ubung 1 Stephan Friedrichs Technische Universit¨ at Braunschweig, IBR 31. Oktober 2013

Transcript of Algorithmen und Datenstrukturen - Übung 1 · PDF file S. Friedrichs (TU Braunschweig,...

Page 1: Algorithmen und Datenstrukturen - Übung 1 · PDF file  S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines

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

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

Organisatorisches

Page 4: Algorithmen und Datenstrukturen - Übung 1 · PDF file  S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Fragerunde

Page 26: Algorithmen und Datenstrukturen - Übung 1 · PDF file  S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines

Algorithmen

Page 27: Algorithmen und Datenstrukturen - Übung 1 · PDF file  S. Friedrichs (TU Braunschweig, ... Ein Algorithmus ist eine Berechnungsvorschrift, die zu jeder Instanz eines

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Fragen?