Post on 14-Jan-2016
description
LS 2 / Informatik
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
LS 2 / Informatik
2
Organisatorisches
Heimübungsblatt 4 Aufgabe 1 wurde ausgetauscht Falls Sie die alte 1 bereits gemacht haben, geben Sie sie mit ab
Praktikum Ab dem nächsten Blatt (Blatt 9) fließt nur noch eine Aufgabe der
Präsenzübung in die Wertung ein Weitere Aufgaben sind optional
LS 2 / Informatik
3
Stand der Dinge
Gierige Algorithmen Konstruiere Lösung Schritt für Schritt In jedem Schritt: Optimiere ein einfaches, lokales Kriterium
Beobachtung Man kann viele unterschiedliche gierige Algorithmen für ein Problem
entwickeln Nicht jeder dieser Algorithmen löst das Problem korrekt
LS 2 / Informatik
4
Gierige Algorithmen
Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)
• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll
Deadline 6
Länge 1
Länge 2
Länge 3
Deadline 2
Deadline 41
2
3
Aufgabe 1
Aufgabe 2
Aufgabe 3
LS 2 / Informatik
5
Gierige Algorithmen
Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)
• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll
Deadline 6
Länge 1
Länge 2
Länge 3
Deadline 2
Deadline 41
2
3
Aufgabe 1
Aufgabe 2
Aufgabe 3
O.b.d.A. Resource steht ab Zeitpunkt 0 zur Verfügung
O.b.d.A. Resource steht ab Zeitpunkt 0 zur Verfügung
LS 2 / Informatik
6
Gierige Algorithmen
Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)
• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll
Deadline 6
Länge 1
Länge 2
Länge 3
Deadline 2
Deadline 41
2
3
Aufgabe 1
Aufgabe 2
Aufgabe 3
Aufgabe 1: Fertig zu Zeitpunkt 1
Aufgabe 1: Fertig zu Zeitpunkt 1
1
LS 2 / Informatik
7
Gierige Algorithmen
Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)
• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll
Deadline 6
Länge 1
Länge 2
Länge 3
Deadline 2
Deadline 41
2
3
Aufgabe 1
Aufgabe 2
Aufgabe 3
Aufgabe 1: Fertig zu Zeitpunkt 1
Aufgabe 1: Fertig zu Zeitpunkt 1
Aufgabe 2: Fertig zu Zeitpunkt 3
Aufgabe 2: Fertig zu Zeitpunkt 3
1 2
LS 2 / Informatik
8
Gierige Algorithmen
Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)
• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll
Deadline 6
Länge 1
Länge 2
Länge 3
Deadline 2
Deadline 41
2
3
Aufgabe 1
Aufgabe 2
Aufgabe 3
Aufgabe 1: Fertig zu Zeitpunkt 1
Aufgabe 1: Fertig zu Zeitpunkt 1
Aufgabe 2: Fertig zu Zeitpunkt 3
Aufgabe 2: Fertig zu Zeitpunkt 3
1 2
Aufgabe 3: Fertig zu Zeitpunkt 6
Aufgabe 3: Fertig zu Zeitpunkt 6
3
LS 2 / Informatik
9
Gierige Algorithmen
Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)
• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll
Deadline 6
Länge 1
Länge 2
Länge 3
Deadline 2
Deadline 41
2
3
Aufgabe 1
Aufgabe 2
Aufgabe 3
Aufgabe 1: Fertig zu Zeitpunkt 1
Aufgabe 1: Fertig zu Zeitpunkt 1
Aufgabe 2: Fertig zu Zeitpunkt 3
Aufgabe 2: Fertig zu Zeitpunkt 3
1 2
Aufgabe 3: Fertig zu Zeitpunkt 6
Aufgabe 3: Fertig zu Zeitpunkt 6
3
Alle Aufgaben sind rechtzeitig fertig!Alle Aufgaben sind rechtzeitig fertig!
LS 2 / Informatik
10
Gierige Algorithmen
Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)
• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll
Deadline 6
Länge 1
Länge 2
Länge 3
Deadline 4
Deadline 4
2
3
Aufgabe 1
Aufgabe 2
Aufgabe 3
1
LS 2 / Informatik
11
Gierige Algorithmen
Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)
• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll
Deadline 6
Länge 1
Länge 2
Länge 3
Deadline 4
Deadline 4
2
3
Aufgabe 1
Aufgabe 2
Aufgabe 3
1
1
LS 2 / Informatik
12
Stand der Dinge
Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)
• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll
Deadline 6
Länge 1
Länge 2
Länge 3
Deadline 4
Deadline 4
2
3
Aufgabe 1
Aufgabe 2
Aufgabe 3
1
1 2
LS 2 / Informatik
13
Stand der Dinge
Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)
• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll
Deadline 6
Länge 1
Länge 2
Länge 3
Deadline 4
Deadline 4
2
3
Aufgabe 1
Aufgabe 2
Aufgabe 3
1
1 2
Aufgabe 2 wird zu spät
beendet
Aufgabe 2 wird zu spät
beendet
LS 2 / Informatik
14
Gierige Algorithmen
Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)
• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll
Deadline 6
Länge 1
Länge 2
Länge 3
Deadline 4
Deadline 4
2
3
Aufgabe 1
Aufgabe 2
Aufgabe 3
1
2
LS 2 / Informatik
15
Gierige Algorithmen
Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)
• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll
Deadline 6
Länge 1
Länge 2
Länge 3
Deadline 4
Deadline 4
2
3
Aufgabe 1
Aufgabe 2
Aufgabe 3
1
2 1
Aufgabe 1 wird zu spät
beendet
Aufgabe 1 wird zu spät
beendet
LS 2 / Informatik
16
Gierige Algorithmen
Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)
• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll
Deadline 6
Länge 1
Länge 2
Länge 3
Deadline 4
Deadline 4
2
3
Aufgabe 1
Aufgabe 2
Aufgabe 3
1
Wir können nicht alle Aufgaben bearbeiten und gleichzeitig die
Deadlines einhalten!
Wir können nicht alle Aufgaben bearbeiten und gleichzeitig die
Deadlines einhalten!
LS 2 / Informatik
17
Gierige Algorithmen
Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)
• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll
Deadline 6
Länge 1
Länge 2
Länge 3
Deadline 4
Deadline 4
2
3
Aufgabe 1
Aufgabe 2
Aufgabe 3
1
Wir können nicht alle Aufgaben bearbeiten und gleichzeitig die
Deadlines einhalten!
Wir können nicht alle Aufgaben bearbeiten und gleichzeitig die
Deadlines einhalten!
1
LS 2 / Informatik
18
Gierige Algorithmen
Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)
• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll
Deadline 6
Länge 1
Länge 2
Länge 3
Deadline 4
Deadline 4
2
3
Aufgabe 1
Aufgabe 2
Aufgabe 3
1
Wir können nicht alle Aufgaben bearbeiten und gleichzeitig die
Deadlines einhalten!
Wir können nicht alle Aufgaben bearbeiten und gleichzeitig die
Deadlines einhalten!
1 2
LS 2 / Informatik
19
Gierige Algorithmen
Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)
• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll
Deadline 6
Länge 1
Länge 2
Länge 3
Deadline 4
Deadline 4
2
3
Aufgabe 1
Aufgabe 2
Aufgabe 3
1
Wir können nicht alle Aufgaben bearbeiten und gleichzeitig die
Deadlines einhalten!
Wir können nicht alle Aufgaben bearbeiten und gleichzeitig die
Deadlines einhalten!
1 2
Aufgabe 2:Verspätung 1
LS 2 / Informatik
20
Gierige Algorithmen
Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)
• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll
Deadline 6
Länge 1
Länge 2
Länge 3
Deadline 4
Deadline 4
2
3
Aufgabe 1
Aufgabe 2
Aufgabe 3
1
Wir können nicht alle Aufgaben bearbeiten und gleichzeitig die
Deadlines einhalten!
Wir können nicht alle Aufgaben bearbeiten und gleichzeitig die
Deadlines einhalten!
1 2
Aufgabe 2:Verspätung 1
3
LS 2 / Informatik
21
Gierige Algorithmen
Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)
• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll
Deadline 6
Länge 1
Länge 2
Länge 3
Deadline 4
Deadline 4
2
3
Aufgabe 1
Aufgabe 2
Aufgabe 3
1
Wir können nicht alle Aufgaben bearbeiten und gleichzeitig die
Deadlines einhalten!
Wir können nicht alle Aufgaben bearbeiten und gleichzeitig die
Deadlines einhalten!
1 2
Aufgabe 2:Verspätung 1
3
Aufgabe 3:Verspätung 2
LS 2 / Informatik
22
Gierige Algorithmen
Scheduling mit Deadlines• Resource (Hörsaal, Parallelrechner, Elektronenmikroskop,..)
• Anfragen: Aufgabe, die Zeit t benötigt und bis Zeitpunkt d bearbeitet sein soll
Deadline 6
Länge 1
Länge 2
Länge 3
Deadline 4
Deadline 4
2
3
Aufgabe 1
Aufgabe 2
Aufgabe 3
1
1 2
Aufgabe 2:Verspätung 1
3
Aufgabe 3:Verspätung 2
Ziel:Minimiere maximale Verspätung
Ziel:Minimiere maximale Verspätung
LS 2 / Informatik
23
Gierige Algorithmen
Strategie 1 Bearbeite die Jobs nach ansteigender Länge
2
6
1
5
3
4
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
LS 2 / Informatik
24
Gierige Algorithmen
Strategie 1 Bearbeite die Jobs nach ansteigender Länge
2
6
1
5
3
4
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
Keine Verspätung
Keine Verspätung
1
LS 2 / Informatik
25
Gierige Algorithmen
Strategie 1 Bearbeite die Jobs nach ansteigender Länge
2
6
1
5
3
4
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
Keine Verspätung
Keine Verspätung
1 5
LS 2 / Informatik
26
Gierige Algorithmen
Strategie 1 Bearbeite die Jobs nach ansteigender Länge
2
6
1
5
3
4
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
Keine Verspätung
Keine Verspätung
1 5 3
LS 2 / Informatik
27
Gierige Algorithmen
Strategie 1 Bearbeite die Jobs nach ansteigender Länge
2
6
1
5
3
4
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
Keine Verspätung
Keine Verspätung
1 5 3 4
LS 2 / Informatik
28
Gierige Algorithmen
Strategie 1 Bearbeite die Jobs nach ansteigender Länge
2
6
1
5
3
4
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
1 5 3 4 2
Verspätung 5
LS 2 / Informatik
29
Gierige Algorithmen
Strategie 1 Bearbeite die Jobs nach ansteigender Länge
2
6
1
5
3
4
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
1 5 3 4 2 6
Verspätung 3
LS 2 / Informatik
30
Gierige Algorithmen
Strategie 1 Bearbeite die Jobs nach ansteigender Länge
2
6
1
5
3
4
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
1 5 3 4 2 6
Maximale Verspätung durch Aufgabe 2 (5 Zeiteinheiten)
Maximale Verspätung durch Aufgabe 2 (5 Zeiteinheiten)
LS 2 / Informatik
31
Gierige Algorithmen
Strategie 1 Bearbeite die Jobs nach ansteigender Länge Optimalität?
2
6
1
5
3
4
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
1 5 3 4 2 6
Maximale Verspätung durch Aufgabe 2 (5 Zeiteinheiten)
Maximale Verspätung durch Aufgabe 2 (5 Zeiteinheiten)
LS 2 / Informatik
32
Gierige Algorithmen
Strategie 1 Bearbeite die Jobs nach ansteigender Länge Optimalität?
2
6
1
5
3
4
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
5
Keine Verspätung
Keine Verspätung
LS 2 / Informatik
33
Gierige Algorithmen
Strategie 1 Bearbeite die Jobs nach ansteigender Länge Optimalität?
2
6
1
5
3
4
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
5
Keine Verspätung
Keine Verspätung
2
LS 2 / Informatik
34
Gierige Algorithmen
Strategie 1 Bearbeite die Jobs nach ansteigender Länge Optimalität?
2
6
1
5
3
4
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
5
Keine Verspätung
Keine Verspätung
2 3
LS 2 / Informatik
35
Gierige Algorithmen
Strategie 1 Bearbeite die Jobs nach ansteigender Länge Optimalität?
2
6
1
5
3
4
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
5 2 3 4
Verspätung 2
LS 2 / Informatik
36
Gierige Algorithmen
Strategie 1 Bearbeite die Jobs nach ansteigender Länge Optimalität?
2
6
1
5
3
4
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
5 2 3 4 1
Keine Verspätung
Keine Verspätung
LS 2 / Informatik
37
Gierige Algorithmen
Strategie 1 Bearbeite die Jobs nach ansteigender Länge Optimalität?
2
6
1
5
3
4
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
5 2 3 4 1 6
Maximale Verspätung durch Aufgabe 6 (3 Zeiteinheiten)
Maximale Verspätung durch Aufgabe 6 (3 Zeiteinheiten)
LS 2 / Informatik
38
Gierige Algorithmen
Strategie 1 Bearbeite die Jobs nach ansteigender Länge Optimalität? Problem: Ignoriert Deadlines völlig
2
6
1
5
3
4
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
5 2 3 4 1 6
Maximale Verspätung durch Aufgabe 6 (3 Zeiteinheiten)
Maximale Verspätung durch Aufgabe 6 (3 Zeiteinheiten)
LS 2 / Informatik
39
Gierige Algorithmen
Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t
2
6
1
5
3
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
4
LS 2 / Informatik
40
Gierige Algorithmen
Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t
2
6
1
5
3
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
4
Spielraum 8
LS 2 / Informatik
41
Gierige Algorithmen
Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t
2
6
1
5
3
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
4
Spielraum 4
LS 2 / Informatik
42
Gierige Algorithmen
Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t
2
6
1
5
3
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
4
Spielraum 1
2
LS 2 / Informatik
43
Gierige Algorithmen
Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t
2
6
1
5
3
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
4Spielraum 2
52
LS 2 / Informatik
44
Gierige Algorithmen
Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t
2
6
1
5
3
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
4
52
Spielraum 4
3
LS 2 / Informatik
45
Gierige Algorithmen
Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t
2
6
1
5
3
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
4
52 3
Spielraum 4
4
LS 2 / Informatik
46
Gierige Algorithmen
Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t
2
6
1
5
3
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
4
52 3 4
Spielraum 6
6
LS 2 / Informatik
47
Gierige Algorithmen
Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t
2
6
1
5
3
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
4
52 3 4 6 1
Spielraum 8
LS 2 / Informatik
48
Gierige Algorithmen
Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t
2
6
1
5
3
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
4
52 3 4 6 1
Verspätung 3
LS 2 / Informatik
49
Gierige Algorithmen
Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t
2
6
1
5
3
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
4
52 3 4 6 1
Verspätung 3
Optimal für unsere Eingabe
Optimal für unsere Eingabe
LS 2 / Informatik
50
Gierige Algorithmen
Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t Optimalität?
2
1
Deadline 9
Deadline 3Spielraum 2
Spielraum 0
LS 2 / Informatik
51
Gierige Algorithmen
Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t Optimalität?
2
1
Deadline 9
Deadline 3Spielraum 2
Spielraum 02
LS 2 / Informatik
52
Gierige Algorithmen
Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t Optimalität?
2
1
Deadline 9
Deadline 3Spielraum 2
Spielraum 02 1
Verspätung 7
LS 2 / Informatik
53
Gierige Algorithmen
Strategie 2 Bearbeite zunächst die Aufgaben mit geringstem Spielraum d-t Optimalität?
2
1
Deadline 9
Deadline 3Spielraum 2
Spielraum 01 2
Optimale Lösung hat nur Verspätung 1
Optimale Lösung hat nur Verspätung 1
Verspätung 1
LS 2 / Informatik
54
Gierige Algorithmen
Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline
2
6
1
5
3
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
4
LS 2 / Informatik
55
Gierige Algorithmen
Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline
2
6
1
5
3
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
4
5
LS 2 / Informatik
56
Gierige Algorithmen
Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline
2
6
1
5
3
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
4
5 2
LS 2 / Informatik
57
Gierige Algorithmen
Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline
2
6
1
5
3
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
4
5 2 3
LS 2 / Informatik
58
Gierige Algorithmen
Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline
2
6
1
5
3
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
4
5 2 3 4
LS 2 / Informatik
59
Gierige Algorithmen
Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline
2
6
1
5
3
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
4
5 2 3 4 6
LS 2 / Informatik
60
Gierige Algorithmen
Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline
2
6
1
5
3
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
4
5 2 3 4 6 1
Verspätung 3
LS 2 / Informatik
61
Gierige Algorithmen
Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline
2
6
1
5
3
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
4
5 2 3 4 6 1
Verspätung 3
Lösung optimal!Lösung optimal!
LS 2 / Informatik
62
Gierige Algorithmen
Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline Algorithmus ist optimal!
2
6
1
5
3
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
4
5 2 3 4 6 1
Verspätung 3
Lösung optimal!Lösung optimal!
LS 2 / Informatik
63
Gierige Algorithmen
Strategie 3 Bearbeite zunächst die Aufgabe mit der frühesten Deadline Algorithmus ist optimal!
2
6
1
5
3
Deadline 9
Deadline 4
Deadline 6
Deadline 6
Deadline 3Deadline 9
4
5 2 3 4 6 1
Verspätung 3
Komisch, da Strategie unabhängig von der Länge
der Aufträge
Komisch, da Strategie unabhängig von der Länge
der Aufträge
LS 2 / Informatik
64
Gierige Algorithmen
Formale Problemformulierung Problem: Scheduling mit Deadline Eingabe: Felder t und d
t[i] enthält Länge des i-ten Intervals d[i] enthält Deadline
Ausgabe: Startzeitpunkte der Intervalle
Wichtige Annahme Eingabe sortiert nach Deadlines d[1]d[2]…d[n]
LS 2 / Informatik
65
Gierige Algorithmen
LatenessScheduling(t,d)
1. n length[t]
2. new array A[1..n]
3. z 0
4. for i 1 to n do
5. A[i] z
6. z z + t[i]
7. return A
1
3
2
t 1 4 2
d 3 4 6
LS 2 / Informatik
66
Gierige Algorithmen
LatenessScheduling(t,d)
1. n length[t]
2. new array A[1..n]
3. z 0
4. for i 1 to n do
5. A[i] z
6. z z + t[i]
7. return A
1
3
2
t 1 4 2
d 3 4 6
LS 2 / Informatik
67
Gierige Algorithmen
LatenessScheduling(t,d)
1. n length[t]
2. new array A[1..n]
3. z 0
4. for i 1 to n do
5. A[i] z
6. z z + t[i]
7. return A
1
3
2
t 1 4 2
d 3 4 6
LS 2 / Informatik
68
Gierige Algorithmen
LatenessScheduling(t,d)
1. n length[t]
2. new array A[1..n]
3. z 0
4. for i 1 to n do
5. A[i] z
6. z z + t[i]
7. return A
1
3
2
t 1 4 2
d 3 4 6
z
LS 2 / Informatik
69
LatenessScheduling(t,d)
1. n length[t]
2. new array A[1..n]
3. z 0
4. for i 1 to n do
5. A[i] z
6. z z + t[i]
7. return A
Gierige Algorithmen
1
3
2
t 1 4 2
d 3 4 6
z
i
LS 2 / Informatik
70
LatenessScheduling(t,d)
1. n length[t]
2. new array A[1..n]
3. z 0
4. for i 1 to n do
5. A[i] z
6. z z + t[i]
7. return A
Gierige Algorithmen
1
3
2
t 1 4 2
d 3 4 6
z
i
1
LS 2 / Informatik
71
LatenessScheduling(t,d)
1. n length[t]
2. new array A[1..n]
3. z 0
4. for i 1 to n do
5. A[i] z
6. z z + t[i]
7. return A
Gierige Algorithmen
1
3
2
t 1 4 2
d 3 4 6
z
i
1
LS 2 / Informatik
72
LatenessScheduling(t,d)
1. n length[t]
2. new array A[1..n]
3. z 0
4. for i 1 to n do
5. A[i] z
6. z z + t[i]
7. return A
Gierige Algorithmen
1
3
2
t 1 4 2
d 3 4 6
z
i
1
LS 2 / Informatik
73
LatenessScheduling(t,d)
1. n length[t]
2. new array A[1..n]
3. z 0
4. for i 1 to n do
5. A[i] z
6. z z + t[i]
7. return A
Gierige Algorithmen
1
3
2
t 1 4 2
d 3 4 6
z
i
1 2
LS 2 / Informatik
74
LatenessScheduling(t,d)
1. n length[t]
2. new array A[1..n]
3. z 0
4. for i 1 to n do
5. A[i] z
6. z z + t[i]
7. return A
Gierige Algorithmen
1
3
2
t 1 4 2
d 3 4 6
z
i
1 2
LS 2 / Informatik
75
LatenessScheduling(t,d)
1. n length[t]
2. new array A[1..n]
3. z 0
4. for i 1 to n do
5. A[i] z
6. z z + t[i]
7. return A
Gierige Algorithmen
1
3
2
t 1 4 2
d 3 4 6
z
i
1 2
LS 2 / Informatik
76
LatenessScheduling(t,d)
1. n length[t]
2. new array A[1..n]
3. z 0
4. for i 1 to n do
5. A[i] z
6. z z + t[i]
7. return A
Gierige Algorithmen
1
3
2
t 1 4 2
d 3 4 6
z
i
1 2 3
LS 2 / Informatik
77
LatenessScheduling(t,d)
1. n length[t]
2. new array A[1..n]
3. z 0
4. for i 1 to n do
5. A[i] z
6. z z + t[i]
7. return A
Gierige Algorithmen
1
3
2
t 1 4 2
d 3 4 6
z
i
1 2 3
LS 2 / Informatik
78
LatenessScheduling(t,d)
1. n length[t]
2. new array A[1..n]
3. z 0
4. for i 1 to n do
5. A[i] z
6. z z + t[i]
7. return A
Gierige Algorithmen
1
3
2
t 1 4 2
d 3 4 6
z
i
1 2 3
LS 2 / Informatik
79
Gierige Algorithmen
Beobachtung
Es gibt eine optimale Lösung ohne Leerlaufzeit.
1 2 3
Leerlauf
LS 2 / Informatik
80
Gierige Algorithmen
Lemma 34
Alle Lösungen ohne Inversionen und Leerlaufzeit haben dieselbe maximale Verzögerung.
Definition
Lösung hat Inversion, wenn Aufgabe i
Mit Deadline d vor Aufgabe j mit
Deadline d < d bearbeitet wird.
1
3
2
1 23
Inversion
i j
j i
i
LS 2 / Informatik
81
Gierige Algorithmen
Lemma 34
Alle Lösungen ohne Inversionen und Leerlaufzeit haben dieselbe maximale Verzögerung.
Beweis
• Haben zwei Schedules weder Inversionen noch Leerlaufzeiten, so haben sie zwar nicht notwendigerweise dieselbe Ordnung, aber sie können sich nur in der Ordnung der Aufgaben mit identischer Deadline unterscheiden. Betrachten wir eine solche Deadline d.
LS 2 / Informatik
82
Gierige Algorithmen
Lemma 34
Alle Lösungen ohne Inversionen und Leerlaufzeit haben dieselbe maximale Verzögerung.
Beweis
• Haben zwei Schedules weder Inversionen noch Leerlaufzeiten, so haben sie zwar nicht notwendigerweise dieselbe Ordnung, aber sie können sich nur in der Ordnung der Aufgaben mit identischer Deadline unterscheiden. Betrachten wir eine solche Deadline d. In beiden Schedules werden alle Aufgaben mit Deadline d nacheinander ausgeführt.
LS 2 / Informatik
83
Gierige Algorithmen
Lemma 34
Alle Lösungen ohne Inversionen und Leerlaufzeit haben dieselbe maximale Verzögerung.
Beweis
• Haben zwei Schedules weder Inversionen noch Leerlaufzeiten, so haben sie zwar nicht notwendigerweise dieselbe Ordnung, aber sie können sich nur in der Ordnung der Aufgaben mit identischer Deadline unterscheiden. Betrachten wir eine solche Deadline d. In beiden Schedules werden alle Aufgaben mit Deadline d nacheinander ausgeführt. Unter den Aufgaben mit Deadline d hat die letzte die größte Verzögerung und diese hängt nicht von der Reihenfolge der Aufgaben ab.
LS 2 / Informatik
84
Gierige Algorithmen
Lemma 34
Alle Lösungen ohne Inversionen und Leerlaufzeit haben dieselbe maximale Verzögerung.
Beweis
• Haben zwei Schedules weder Inversionen noch Leerlaufzeiten, so haben sie zwar nicht notwendigerweise dieselbe Ordnung, aber sie können sich nur in der Ordnung der Aufgaben mit identischer Deadline unterscheiden. Betrachten wir eine solche Deadline d. In beiden Schedules werden alle Aufgaben mit Deadline d nacheinander ausgeführt. Unter den Aufgaben mit Deadline d hat die letzte die größte Verzögerung und diese hängt nicht von der Reihenfolge der Aufgaben ab.
LS 2 / Informatik
85
Gierige Algorithmen
Lemma 35
Es gibt eine optimale Lösung ohne Inversionen und Leerlaufzeit.
1
3
2
1 2 3
LS 2 / Informatik
86
Gierige Algorithmen
Lemma 35
Es gibt eine optimale Lösung ohne Inversionen und Leerlaufzeit.
1
3
2
1 2 3Ohne Inversionen
und Leerlauf: Also optimal!
Ohne Inversionen und Leerlauf: Also optimal!
LS 2 / Informatik
87
Gierige Algorithmen
Lemma 35
Es gibt eine optimale Lösung ohne Inversionen und Leerlaufzeit.
Beweis• Sei O ein optimales Schedule ohne Leerlauf. Wir zeigen zunächst
• (a) Wenn O eine Inversion hat, dann gibt es ein Paar Aufgaben i und j, so dass j direkt nach i auftritt und d < d ist. (D.h. eine Inversion von aufeinanderfolgenden Aufgaben)
a b
Deadline 9 Deadline 5
Deadline 9
j i
LS 2 / Informatik
88
Gierige Algorithmen
Lemma 35
Es gibt eine optimale Lösung ohne Inversionen und Leerlaufzeit.
Beweis• Sei O ein optimales Schedule ohne Leerlauf. Wir zeigen zunächst
• (a) Wenn O eine Inversion hat, dann gibt es ein Paar Aufgaben i und j, so dass j direkt nach i auftritt und d < d ist. (D.h. eine Inversion von aufeinanderfolgenden Aufgaben)
a b
Deadline 9 Deadline 5
Deadline 9
j i
LS 2 / Informatik
89
Gierige Algorithmen
Lemma 35
Es gibt eine optimale Lösung ohne Inversionen und Leerlaufzeit.
Beweis• Sei O ein optimales Schedule ohne Leerlauf. Wir zeigen zunächst
• (a) Wenn O eine Inversion hat, dann gibt es ein Paar Aufgaben i und j, so dass j direkt nach i auftritt und d < d ist. (D.h. eine Inversion von aufeinanderfolgenden Aufgaben)
a b
Deadline 9 Deadline 5
j i
Spätestens hier Inversion von aufeinander folgenden Aufgaben
LS 2 / Informatik
90
Gierige Algorithmen
Lemma 35
Es gibt eine optimale Lösung ohne Inversionen und Leerlaufzeit.
Beweis• Sei O ein optimales Schedule ohne Leerlauf. Wir zeigen zunächst
• (a) Wenn O eine Inversion hat, dann gibt es ein Paar Aufgaben i und j, so dass j direkt nach i auftritt und d < d ist. (D.h. eine Inversion von aufeinanderfolgenden Aufgaben)
a b
Deadline 9 Deadline 5
j i
Spätestens hier Inversion von aufeinander folgenden Aufgaben
LS 2 / Informatik
91
Gierige Algorithmen
Lemma 35
Es gibt eine optimale Lösung ohne Inversionen und Leerlaufzeit.
Beweis• Sei O ein optimales Schedule ohne Leerlauf. Wir zeigen zunächst
• (b) Nach dem Austauschen von einer benachbarten Inversion i und j erhalten wir ein Schedule mit einer Inversion weniger.
• Es wird die Inversion von i und j durch das Vertauschen aufgehoben und es wird keine neue Inversion wird erzeugt.
LS 2 / Informatik
92
Gierige Algorithmen
Lemma 35
Es gibt eine optimale Lösung ohne Inversionen und Leerlaufzeit.
Beweis• Sei O ein optimales Schedule ohne Leerlauf. Wir zeigen zunächst
• (c) Das Tauschen von i und j erhöht nicht die maximale Verzögerung.
i j
Aufeinander folgende Inversion (i,j)
di
d j
LS 2 / Informatik
93
Gierige Algorithmen
Lemma 35
Es gibt eine optimale Lösung ohne Inversionen und Leerlaufzeit.
Beweis• Sei O ein optimales Schedule ohne Leerlauf. Wir zeigen zunächst
• (c) Das Tauschen von i und j erhöht nicht die maximale Verzögerung.
j i
di
d j
Vertausche i und j
Verzögerung von j wird
kleiner
Verzögerung von j wird
kleiner
LS 2 / Informatik
94
Gierige Algorithmen
Lemma 35
Es gibt eine optimale Lösung ohne Inversionen und Leerlaufzeit.
Beweis• Sei O ein optimales Schedule ohne Leerlauf. Wir zeigen zunächst
• (c) Das Tauschen von i und j erhöht nicht die maximale Verzögerung.
j i
di
d j
Vertausche i und j
Verzögerung von i wird größer!
Verzögerung von i wird größer!
LS 2 / Informatik
95
Gierige Algorithmen
Lemma 35
Es gibt eine optimale Lösung ohne Inversionen und Leerlaufzeit.
Beweis• Sei O ein optimales Schedule ohne Leerlauf. Wir zeigen zunächst
• (c) Das Tauschen von i und j erhöht nicht die maximale Verzögerung.
j i
di
d j
Vertausche i und j
Ist aber kleiner als Verzögerung von j vor Vertauschung!
Ist aber kleiner als Verzögerung von j vor Vertauschung!
LS 2 / Informatik
96
Gierige Algorithmen
Lemma 35
Es gibt eine optimale Lösung ohne Inversionen und Leerlaufzeit.
Beweis• Sei O ein optimales Schedule ohne Leerlauf. Wir zeigen zunächst
• (c) Das Tauschen von i und j erhöht nicht die maximale Verzögerung.
j i
di
d j
Vertausche i und j
Ist aber kleiner als Verzögerung von j vor Vertauschung!
Ist aber kleiner als Verzögerung von j vor Vertauschung!
LS 2 / Informatik
97
Gierige Algorithmen
Formaler Beweis von (c)• Notation für O: Aufgabe r wird im Invervall [s(r),f(r)] ausgeführt und hat
Verzögerung l(r). Sei L = max l(r) die maximale Verzögerung dieses Schedules.
• Notation für das Schedule O* nach Austauschen: s*(r), f*(r), l*(r) und L* mit der entsprechenden Bedeutung wie oben.
• s(r), s*(r) heißt Startzeit
• f(r), f*(r) heißt Abarbeitungszeit
r
dr
s(r) f(r)
l(r)
LS 2 / Informatik
98
Gierige Algorithmen
Formaler Beweis von (c)• Betrachten wir nun die benachbarte Inversion von i und j. Die
Abarbeitungszeit f(j) von j vor dem Austauschen ist gleich der Abarbeitungszeit f*(i) von i nach dem Austauschen. Daher haben alle anderen Aufgaben vor und nach dem Tauschen dieselbe Abarbeitungszeit.
i j
Aufeinander folgende Inversion (i,j)
di
d j
f(j)f(i)
LS 2 / Informatik
99
Gierige Algorithmen
Formaler Beweis von (c)• Betrachten wir nun die benachbarte Inversion von i und j. Die
Abarbeitungszeit f(j) von j vor dem Austauschen ist gleich der Abarbeitungszeit f*(i) von i nach dem Austauschen. Daher haben alle anderen Aufgaben vor und nach dem Tauschen dieselbe Abarbeitungszeit.
• Für Aufgabe j ist das neue Schedule besser, d.h. f*(j)<f(j).
ij
Aufeinander folgende Inversion (i,j)
di
d j
f(j)f(i)f*(i)f*(j)
LS 2 / Informatik
100
Gierige Algorithmen
Formaler Beweis von (c)• Betrachte nur Aufgabe i: Nach dem Tauschen ist die Verzögerung
l*(i) = f*(i)-d .
ij
di
d j
f(j)f(i)f*(i)f*(j)
i
l*(i)
LS 2 / Informatik
101
Gierige Algorithmen
Formaler Beweis von (c)• Betrachte nur Aufgabe i: Nach dem Tauschen ist die Verzögerung
l*(i) = f*(i)-d .
• Wegen d > d folgt l*(i) = f(j) - d < f(j) - d = l(j).
• Damit wird die maximale Verzögerung nicht erhöht.
ij
di
d j
f(j)f(i)f*(i)f*(j)
i
l*(i)
i j i j
LS 2 / Informatik
102
Gierige Algorithmen
Lemma 35
Es gibt eine optimale Lösung ohne Inversionen und Leerlaufzeit.
Beweis• (a) Wenn O eine Inversion hat, dann gibt es ein Paar Aufgaben i und j, so
dass j direkt nach i auftritt und d < d ist.
• (b) Nach dem Austauschen von einer benachbarten Inversion i und j erhalten wir ein Schedule mit einer Inversion weniger.
• (c) Das Tauschen von i und j erhöht nicht die maximale Verzögerung.
• Die Anzahl Inversionen ist zu Beginn höchstens ( ).Wir können (a)-(c) solange anwenden, bis keine Inversionen mehr vorhanden sind.
ij
n2
LS 2 / Informatik
103
Gierige Algorithmen
Satz 36
Die Lösung A, die von Algorithmus LatenessScheduling berechnet wird, hat optimale (d.h. minimale) maximale Verzögerung.
Beweis
Aus dem ersten Lemma folgt, dass es ein optimales Schedule ohne Inversionen gibt. Aus dem zweiten Lemma folgt, dass alle Schedules ohne Inversionen dieselbe maximale Verzögerung haben. Damit ist die Lösung des gierigen Algorithmus optimal.
LS 2 / Informatik
104
Gierige Algorithmen
Zusammenfassung Löse globales Optimierungsproblem durch lokale Optimierungsstrategie Liefert häufig recht einfache Algorithmen Funktioniert leider nicht immer und es ist manchmal nicht ganz einfach, die
‚richtige‘ Strategie zu finden
Algorithmische Entwurfsmethoden Teile & Herrsche Dynamische Programmierung Gierige Algorithmen
LS 2 / Informatik
105
Datenstrukturen
Was ist eine Datenstruktur? Eine Datenstruktur ist eine Anordnung von Daten, die effizienten Zugriff auf
die Daten ermöglicht Datenstrukturen für viele unterschiedliche Anfragen vorstellbar
LS 2 / Informatik
106
Datenstrukturen
Ein grundlegendes Datenbank-Problem Speicherung von Datensätzen
Beispiel Kundendaten (Name, Adresse, Wohnort, Kundennummer, offene
Rechnungen, offene Bestellungen,…)
Anforderungen Schneller Zugriff Einfügen neuer Datensätze Löschen bestehender Datensätze
LS 2 / Informatik
107
Datenstrukturen
Zugriff auf Daten Jedes Datum (Objekt) hat einen Schlüssel Eingabe des Schlüssels liefert Datensatz Schlüssel sind vergleichbar (es gibt totale Ordnung der Schlüssel)
Beispiel Kundendaten (Name, Adresse, Kundennummer) Schlüssel: Name Totale Ordnung: Lexikographische Ordnung
LS 2 / Informatik
108
Datenstrukturen
Zugriff auf Daten Jedes Datum (Objekt) hat einen Schlüssel Eingabe des Schlüssels liefert Datensatz Schlüssel sind vergleichbar (es gibt totale Ordnung der Schlüssel)
Beispiel: Kundendaten (Name, Adresse, Kundennummer) Schlüssel: Kundennummer Totale Ordnung: ‚‘
LS 2 / Informatik
109
Datenstrukturen
Problem: Gegeben sind n Objekte O ,.., O mit zugehörigen Schlüsseln s(O )
Operationen: Suche(x); Ausgabe O mit Schlüssel s(O) =x;
nil, falls kein Objekt mit Schlüssel x in Datenbank Einfügen(O); Einfügen von Objekt O in Datenbank Löschen(O); Löschen von Objekt O mit aus der Datenbank
1 n i
LS 2 / Informatik
110
Datenstrukturen
Vereinfachung: Schlüssel sind natürliche Zahlen Eingabe nur aus Schlüsseln
Analyse von Datenstrukturen Platzbedarf in - bzw. O-Notation Laufzeit der Operationen in - bzw. O-Notation
LS 2 / Informatik
111
Datenstrukturen
Einfaches Feld Feld A[1,…,max] Integer n, 1 n max n bezeichnet Anzahl Elemente in Datenstruktur
13 7 11 6 4 nil nil nil nil nil
n
LS 2 / Informatik
112
Datenstrukturen
Einfügen(s)
1. if n=max then Ausgabe „Fehler: Kein Platz in Datenstruktur“
2. else
3. n n+1
4. A[n] s
13 7 11 6 4 nil nil nil nil nil
n
LS 2 / Informatik
113
Datenstrukturen
Einfügen(s)
1. if n=max then Ausgabe „Fehler: Kein Platz in Datenstruktur“
2. else
3. n n+1
4. A[n] s
13 7 11 6 4 nil nil nil nil nil
n
Einfügen(2)
LS 2 / Informatik
114
Datenstrukturen
Einfügen(s)
1. if n=max then Ausgabe „Fehler: Kein Platz in Datenstruktur“
2. else
3. n n+1
4. A[n] s
13 7 11 6 4 2 nil nil nil nil
n
Einfügen(2)
LS 2 / Informatik
115
Datenstrukturen
Suche(x)1. for i 1 to n do
2. if A[i] = x then return i
3. return nil
13 7 11 6 4 2 nil nil nil nil
n
LS 2 / Informatik
116
Datenstrukturen
Löschen(i)1. A[i] A[n]
2. A[n] nil
3. n n-1
13 7 11 6 4 2 nil nil nil nil
n
Annahme:Wir bekommen Index i des zu löschenden Objekts
Annahme:Wir bekommen Index i des zu löschenden Objekts
LS 2 / Informatik
117
Datenstrukturen
Löschen(i)1. A[i] A[n]
2. A[n] nil
3. n n-1
13 7 11 6 4 2 nil nil nil nil
n
Löschen(2)
LS 2 / Informatik
118
Datenstrukturen
Löschen(i)1. A[i] A[n]
2. A[n] nil
3. n n-1
13 2 11 6 4 nil nil nil nil nil
n
Löschen(2)
LS 2 / Informatik
119
Datenstrukturen
Datenstruktur Feld Platzbedarf (max) Laufzeit Suche: (n) Laufzeit Einfügen/Löschen: (1)
Vorteile Schnelles Einfügen und Löschen
Nachteile Speicherbedarf abhängig von max (nicht vorhersagbar) Hohe Laufzeit für Suche
LS 2 / Informatik
120
Datenstrukturen
Datenstruktur „sortiertes Feld“ Sortiertes Feld A[1,…,max] Integer n, 1 n max n bezeichnet Anzahl Elemente in Datenstruktur
2 4 6 7 11 13 nil nil nil nil
A n
LS 2 / Informatik
121
Datenstrukturen
Einfügen(s)1. n n+1
2. i n
3. while s < A[i-1] do
4. A[i] A[i-1]
5. i i -1
6. A[i] s
2 4 6 7 11 13 nil nil nil nil
n
Einfügen(10)
LS 2 / Informatik
122
Datenstrukturen
Einfügen(s)1. n n+1
2. i n
3. while s < A[i-1] do
4. A[i] A[i-1]
5. i i -1
6. A[i] s
2 4 6 7 11 13 nil nil nil nil
n
Einfügen(10)
LS 2 / Informatik
123
Einfügen(s)1. n n+1
2. i n
3. while s < A[i-1] do
4. A[i] A[i-1]
5. i i -1
6. A[i] s
Datenstrukturen
2 4 6 7 11 13 nil nil nil nil
n
Einfügen(10)
LS 2 / Informatik
124
Einfügen(s)1. n n+1
2. i n
3. while s < A[i-1] do
4. A[i] A[i-1]
5. i i -1
6. A[i] s
Datenstrukturen
2 4 6 7 11 11 13 nil nil nil
n
Einfügen(10)
LS 2 / Informatik
125
Einfügen(s)1. n n+1
2. i n
3. while s < A[i-1] do
4. A[i] A[i-1]
5. i i -1
6. A[i] s
Datenstrukturen
2 4 6 7 10 11 13 nil nil nil
n
Einfügen(10)
Laufzeit O(n)Laufzeit O(n)
LS 2 / Informatik
126
Datenstrukturen
Löschen(i)1. for j i to n-1 do
2. A[j] A[j+1]
3. A[n] nil
4. n n-1
2 4 6 7 11 13 nil nil nil nil
n
Parameter ist der Index des zu löschenden Objekts
Parameter ist der Index des zu löschenden Objekts
LS 2 / Informatik
127
Datenstrukturen
Löschen(i)1. for j i to n-1 do
2. A[j] A[j+1]
3. A[n] nil
4. n n-1
2 4 6 7 11 13 nil nil nil nil
n
Parameter ist der Index des zu löschenden Objekts
Parameter ist der Index des zu löschenden Objekts
Löschen(2)
LS 2 / Informatik
128
Datenstrukturen
Löschen(i)1. for j i to n-1 do
2. A[j] A[j+1]
3. A[n] nil
4. n n-1
2 4 6 7 11 13 nil nil nil nil
n
Parameter ist der Index des zu löschenden Objekts
Parameter ist der Index des zu löschenden Objekts
Löschen(2)
i
LS 2 / Informatik
129
Datenstrukturen
Löschen(i)1. for j i to n-1 do
2. A[j] A[j+1]
3. A[n] nil
4. n n-1
2 4 6 7 11 13 nil nil nil nil
n
Löschen(2)
i
LS 2 / Informatik
130
Datenstrukturen
Löschen(i)1. for j i to n-1 do
2. A[j] A[j+1]
3. A[n] nil
4. n n-1
2 6 7 11 13 13 nil nil nil nil
n
Löschen(2)
i
LS 2 / Informatik
131
Löschen(i)1. for j i to n-1 do
2. A[j] A[j+1]
3. A[n] nil
4. n n-1
Datenstrukturen
2 6 7 11 13 nil nil nil nil nil
n
Löschen(2)
i
LS 2 / Informatik
132
Löschen(i)1. for j i to n-1 do
2. A[j] A[j+1]
3. A[n] nil
4. n n-1
Datenstrukturen
2 6 7 11 13 nil nil nil nil nil
n
Löschen(2)
i
LS 2 / Informatik
133
Suchen(x) Binäre Suche Laufzeit O(log n)
Datenstrukturen
2 6 7 11 13 nil nil nil nil nil
n
Löschen(2)
i
LS 2 / Informatik
134
Datenstrukturen
Datenstruktur sortiertes Feld Platzbedarf (max) Laufzeit Suche: (log n) Laufzeit Einfügen/Löschen: (n)
Vorteile Schnelles Suchen
Nachteile Speicherbedarf abhängig von max (nicht vorhersagbar) Hohe Laufzeit für Einfügen/Löschen