Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon...

69
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Tanya Braun (Übungen) sowie viele Tutoren

Transcript of Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon...

Page 1: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Algorithmen und Datenstrukturen

Prof. Dr. Ralf MöllerUniversität zu Lübeck

Institut für Informationssysteme

Tanya Braun (Übungen)sowie viele Tutoren

Page 2: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Sortierung in linearer Zeit

• Sortieren: Geht es doch noch schneller als in W(n log n) Schritten?

• Man muss „schärfere“ Annahmen über das Problem machen können ...– z.B. Schlüssel in n Feldelementen aus dem Bereich [1..n]

• ... oder Nebenbedingungen „abschwächen“– z.B. die In-situ-Einschränkung aufgeben

• Zentrale Idee: Vermeide Vergleiche!

2

Seward, H. H. (1954), "2.4.6 Internal Sorting by Floating Digital Sort", Information sorting in the application of electronic digital computersto business operations, Master's thesis, Report R-232, Massachusetts Institute of Technology, Digital Computer Laboratory, pp. 25–28

A. Andersson, T. Hagerup, S. Nilsson, R. Raman, Sorting in Linear Time?, J. Comput. Syst. Sci. 57(1): 74-93, 1998

Page 3: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Danksagung

• Nachfolgende Präsentationen sind inspiriert durch CS 3343/3341 Analysis of Algorithms 2013

• http://www.cs.utsa.edu/~jruan/teaching/cs3343_spring_2013/index.html

3

Page 4: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Sortieren durch Zählen / Counting-Sort

• Wissen: Schlüssel fallen in einen kleinen Zahlenbereich

• Beispiel 1: Sortiere eine Menge von Studierendennach Examensbewertungen (Scores sind Zahlen)– 1000 Studenten– Maximum score: 100– Minimum score: 0

• Beispiel 2: Sortiere Studierende nach dem erstenBuchstaben des Nachnamens– Anzahl der Studierenden: viele– Anzahl der Buchstaben: 26

4

Page 5: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Counting-Sort

• Eingabe: A[1 . . n], wobei A[ j]∈{1, 2, …, k} .• Ausgabe: B[1 . . n], sortiert.• Hilfsspeicher: C[1 . . k] .

• Kein In-situ-Sortieralgorithmus• Benötigt 𝛳(n+k) zusätzliche Speicherplätze

5

Page 6: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Intuition

• S1: 100• S2: 90• S3: 85• S4: 100• S5: 90• …

S1

S4

S2

S5

S3

85 90 100

… S3 … S2, S5, …, S1, S4

0

6

Page 7: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Intuition

2211

75 85 90 100

50 Studierende mit Score ≤ 75Was ist der Rang (von klein auf groß) für einen Studenten mit Score 75?

200 Studierende mit Score ≤ 90Was ist der Rang für einen Studenten mit Score 90?

50

200 or 199

7

Page 8: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Counting-Sort

for i← 1 to kdo C[i] ← 0

for j← 1 to ndo C[A[ j]] ← C[A[ j]] + 1 ⊳ C[i] = |{key = i}|

for i← 2 to kdo C[i] ← C[i] + C[i–1] ⊳ C[i] = |{key ≤ i}|

for j← n downto 1do B[C[A[ j]]] ← A[ j]

C[A[ j]] ← C[A[ j]] – 1

1.

2.

3.

4.

Initialisiere

Zähle

Bestimme Summe

Ordne neu

8

Page 9: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Counting-Sort Beispiel

A: 4 1 3 4 3

B:

1 2 3 4 5

C:1 2 3 4

9

Page 10: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Schleife 1: Initialisierung

A: 4 1 3 4 3

B:

1 2 3 4 5

C: 0 0 0 01 2 3 4

for i← 1 to kdo C[i] ← 0

1.

10

Page 11: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Schleife 2: Zähle

A: 4 1 3 4 3

B:

1 2 3 4 5

C: 0 0 0 11 2 3 4

for j← 1 to ndo C[A[ j]] ← C[A[ j]] + 1 ⊳ C[i] = |{key = i}|

2.

11

Page 12: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Schleife 2: Zähle

A: 4 1 3 4 3

B:

1 2 3 4 5

C: 1 0 0 11 2 3 4

for j← 1 to ndo C[A[ j]] ← C[A[ j]] + 1 ⊳ C[i] = |{key = i}|

2.

12

Page 13: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Schleife 2: Zähle

A: 4 1 3 4 3

B:

1 2 3 4 5

C: 1 0 1 11 2 3 4

for j← 1 to ndo C[A[ j]] ← C[A[ j]] + 1 ⊳ C[i] = |{key = i}|

2.

13

Page 14: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Schleife 2: Zähle

A: 4 1 3 4 3

B:

1 2 3 4 5

C: 1 0 1 21 2 3 4

for j← 1 to ndo C[A[ j]] ← C[A[ j]] + 1 ⊳ C[i] = |{key = i}|

2.

14

Page 15: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Schleife 2: Zähle

A: 4 1 3 4 3

B:

1 2 3 4 5

C: 1 0 2 21 2 3 4

for j← 1 to ndo C[A[ j]] ← C[A[ j]] + 1 ⊳ C[i] = |{key = i}|

2.

15

Page 16: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Schleife 3: Berechne Summe

A: 4 1 3 4 3

B:

1 2 3 4 5

C: 1 0 2 21 2 3 4

C': 1 1 2 2

for i← 2 to kdo C[i] ← C[i] + C[i–1] ⊳ C[i] = |{key ≤ i}|

3.

16

Page 17: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Schleife 3: Berechne Summe

A: 4 1 3 4 3

B:

1 2 3 4 5

C: 1 0 2 21 2 3 4

C': 1 1 3 2

for i← 2 to kdo C[i] ← C[i] + C[i–1] ⊳ C[i] = |{key £ i}|

3.

17

Page 18: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Schleife 3: Berechne Summe

A: 4 1 3 4 3

B:

1 2 3 4 5

C: 1 0 2 21 2 3 4

C': 1 1 3 5

for i← 2 to kdo C[i] ← C[i] + C[i–1] ⊳ C[i] = |{key £ i}|

3.

18

Page 19: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Schleife 4: Ordne neu

A: 4 1 3 4 3

B: 3

1 2 3 4 5

C: 1 1 3 51 2 3 4

C': 1 1 3 5

for j← n downto 1do B[C[A[ j]]] ← A[ j]

C[A[ j]] ← C[A[ j]] – 1

4.

19

Page 20: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Schleife 4: Ordne neu

A: 4 1 3 4 3

B: 3

1 2 3 4 5

C: 1 1 3 51 2 3 4

C': 1 1 2 5

for j← n downto 1do B[C[A[ j]]] ← A[ j]

C[A[ j]] ← C[A[ j]] – 1

4.

20

Page 21: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Schleife 4: Ordne neu

A: 4 1 3 4 3

B: 3 4

1 2 3 4 5

C: 1 1 2 51 2 3 4

C': 1 1 2 5

for j← n downto 1do B[C[A[ j]]] ← A[ j]

C[A[ j]] ← C[A[ j]] – 1

4.

21

Page 22: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Schleife 4: Ordne neu

A: 4 1 3 4 3

B: 3 4

1 2 3 4 5

C: 1 1 2 51 2 3 4

C': 1 1 2 4

for j← n downto 1do B[C[A[ j]]] ← A[ j]

C[A[ j]] ← C[A[ j]] – 1

4.

22

Page 23: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Schleife 4: Ordne neu

A: 4 1 3 4 3

B: 3 3 4

1 2 3 4 5

C: 1 1 2 41 2 3 4

C': 1 1 2 4

for j← n downto 1do B[C[A[ j]]] ← A[ j]

C[A[ j]] ← C[A[ j]] – 1

4.

23

Page 24: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Schleife 4: Ordne neu

A: 4 1 3 4 3

B: 3 3 4

1 2 3 4 5

C: 1 1 2 41 2 3 4

C': 1 1 1 4

for j← n downto 1do B[C[A[ j]]] ← A[ j]

C[A[ j]] ← C[A[ j]] – 1

4.

24

Page 25: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Schleife 4: Ordne neu

A: 4 1 3 4 3

B: 1 3 3 4

1 2 3 4 5

C: 1 1 1 41 2 3 4

C': 1 1 1 4

for j← n downto 1do B[C[A[ j]]] ← A[ j]

C[A[ j]] ← C[A[ j]] – 1

4.

25

Page 26: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Schleife 4: Ordne neu

A: 4 1 3 4 3

B: 1 3 3 4

1 2 3 4 5

C: 1 1 1 41 2 3 4

C': 0 1 1 4

for j← n downto 1do B[C[A[ j]]] ← A[ j]

C[A[ j]] ← C[A[ j]] – 1

4.

26

Page 27: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Schleife 4: Ordne neu

A: 4 1 3 4 3

B: 1 3 3 4 4

1 2 3 4 5

C: 0 1 1 41 2 3 4

C': 0 1 1 4

for j← n downto 1do B[C[A[ j]]] ← A[ j]

C[A[ j]] ← C[A[ j]] – 1

4.

27

Page 28: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Schleife 4: Ordne neu

A: 4 1 3 4 3

B: 1 3 3 4 4

1 2 3 4 5

C: 0 1 1 41 2 3 4

C': 0 1 1 3

for j← n downto 1do B[C[A[ j]]] ← A[ j]

C[A[ j]] ← C[A[ j]] – 1

4.

28

Page 29: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Counting-Sort Algorithmus

2929

1: procedure Counting-Sort(A,B, k)2: for i 1 to k do

3: C[i] 0

4: for j 1 to length(A) do

5: C[A[j]] C[A[j]] + 1

6: . C[i] enthalt nun die Anzahl der Elemente, die gleich i sind.

7: for i 2 to k do

8: C[i] C[i] + C[i� 1]

9: . C[i] enthalt nun die Anzahl der Elemente, die keiner oder gleich i sind.

10: for j length(A) downto 1 do

11: B[C[A[j]]] A[j[12: C[A[j]] C[A[j]]� 1

1

Page 30: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Analyse

for i← 1 to kdo C[i] ← 0

Q(n)

Q(k)

Q(n)

Q(k)

for j← 1 to ndo C[A[ j]] ← C[A[ j]] + 1

for i← 2 to kdo C[i] ← C[i] + C[i–1]

for j← n downto 1do B[C[A[ j]]] ← A[ j]

C[A[ j]] ← C[A[ j]] – 1Q(n + k)

1.

2.

3.

4.

30

Page 31: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Laufzeit: Wodurch wird sie reduziert?

• Falls k = O(n), dann braucht Counting-Sort Q(n)viele Schritte.

• Aber theoretisch braucht doch SortierungW(n log n) viele Schritte!

• Gibt es ein Problem mit der Theorie?

Antwort:• Sortieren durch Vergleichen liegt in W(n log n)• Counting-Sort macht keine Vergleiche• Counting-Sort verteilt einfach

31

Page 32: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Stabiles Sortieren

Counting-Sort ist stabil: die Eingabeordnungfür gleiche Schlüssel bleibt bestehen

A: 4 1 3 4 3

B: 1 3 3 4 4

Warum ist das wichtig?Welche andere Algorithmen haben dieses Eigenschaft?

32

Page 33: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Last First Street City StateBayless Andrew West Ave Houston TXBenitez Michael North Ave Los Angeles CAChu Henry East Ave San Diego CADangelo David Third St Detroit MIDawood Hussam Lincoln Rd Detroit MIDevineni Soujanya Northwestern Ave Houston TXDunne Brendan EAST AVE. Dallas TXEdwards Brian De Zavala Rd San Antonio TXGodfrey Daryl MAIN ST Austin TXGuerra John DALLAS AVE. Austin TXGuevara Clovis University Pkwy San Antonio TXHalbeisen Gerald FOREST CIRCLE Los Angeles CAHawkins Richard RIVERSIDE ST San Antonio TXHernandez Monica COLLEGE PKWY San Antonio TXHohmann Shawn COLLEGE PKWY Cleveland OHHoneycutt Richard Southwest Ave San Antonio TXMartinez Juan OAK CLIFF Pheonix AZMayo Nathan UTSA BLVD San Antonio TXMirabal Renato FIRST ST Columbus OHModebe Nnaemeka RIVERSIDE ST Houston TXMoon Ryan EAST AVE. Madison WI

Name Address

Aufgabe: Sortiere Studierende nach (state, city, street). 33

Page 34: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Last First Street City StateMartinez Juan OAK CLIFF Pheonix AZBenitez Michael North Ave Los Angeles CAChu Henry East Ave San Diego CAHalbeisen Gerald FOREST CIRCLE Los Angeles CADangelo David Third St Detroit MIDawood Hussam Lincoln Rd Detroit MIHohmann Shawn COLLEGE PKWY Cleveland OHMirabal Renato FIRST ST Columbus OHBayless Andrew West Ave Houston TXDevineni Soujanya Northwestern Ave Houston TXDunne Brendan EAST AVE. Dallas TXEdwards Brian De Zavala Rd San Antonio TXGodfrey Daryl MAIN ST Austin TXGuerra John DALLAS AVE. Austin TXGuevara Clovis University Pkwy San Antonio TXHawkins Richard RIVERSIDE ST San Antonio TXHernandez Monica COLLEGE PKWY San Antonio TXHoneycutt Richard Southwest Ave San Antonio TXMayo Nathan UTSA BLVD San Antonio TXModebe Nnaemeka RIVERSIDE ST Houston TXMoon Ryan EAST AVE. Madison WI

Name Address

Aufgabe: Sortiere Studierende nach (state, city, street). 34

Page 35: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Last First Street City StateGodfrey Daryl MAIN ST Austin TXGuerra John DALLAS AVE. Austin TXHohmann Shawn COLLEGE PKWY Cleveland OHMirabal Renato FIRST ST Columbus OHDunne Brendan EAST AVE. Dallas TXDangelo David Third St Detroit MIDawood Hussam Lincoln Rd Detroit MIBayless Andrew West Ave Houston TXDevineni Soujanya Northwestern Ave Houston TXModebe Nnaemeka RIVERSIDE ST Houston TXBenitez Michael North Ave Los Angeles CAHalbeisen Gerald FOREST CIRCLE Los Angeles CAMoon Ryan EAST AVE. Madison WIMartinez Juan OAK CLIFF Pheonix AZEdwards Brian De Zavala Rd San Antonio TXGuevara Clovis University Pkwy San Antonio TXHawkins Richard RIVERSIDE ST San Antonio TXHernandez Monica COLLEGE PKWY San Antonio TXHoneycutt Richard Southwest Ave San Antonio TXMayo Nathan UTSA BLVD San Antonio TXChu Henry East Ave San Diego CA

Name Address

Aufgabe: Sortiere Studierende nach (state, city, street). 35

Page 36: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Last First Street City StateHohmann Shawn COLLEGE PKWY Cleveland OHHernandez Monica COLLEGE PKWY San Antonio TXGuerra John DALLAS AVE. Austin TXEdwards Brian De Zavala Rd San Antonio TXChu Henry East Ave San Diego CADunne Brendan EAST AVE. Dallas TXMoon Ryan EAST AVE. Madison WIMirabal Renato FIRST ST Columbus OHHalbeisen Gerald FOREST CIRCLE Los Angeles CADawood Hussam Lincoln Rd Detroit MIGodfrey Daryl MAIN ST Austin TXBenitez Michael North Ave Los Angeles CADevineni Soujanya Northwestern Ave Houston TXMartinez Juan OAK CLIFF Pheonix AZModebe Nnaemeka RIVERSIDE ST Houston TXHawkins Richard RIVERSIDE ST San Antonio TXHoneycutt Richard Southwest Ave San Antonio TXDangelo David Third St Detroit MIGuevara Clovis University Pkwy San Antonio TXMayo Nathan UTSA BLVD San Antonio TXBayless Andrew West Ave Houston TX

Name Address

Aufgabe: Sortiere Studierende nach (state, city, street). 36

Page 37: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Last First Street City StateBayless Andrew West Ave Houston TXBenitez Michael North Ave Los Angeles CAChu Henry East Ave San Diego CADangelo David Third St Detroit MIDawood Hussam Lincoln Rd Detroit MIDevineni Soujanya Northwestern Ave Houston TXDunne Brendan EAST AVE. Dallas TXEdwards Brian De Zavala Rd San Antonio TXGodfrey Daryl MAIN ST Austin TXGuerra John DALLAS AVE. Austin TXGuevara Clovis University Pkwy San Antonio TXHalbeisen Gerald FOREST CIRCLE Los Angeles CAHawkins Richard RIVERSIDE ST San Antonio TXHernandez Monica COLLEGE PKWY San Antonio TXHohmann Shawn COLLEGE PKWY Cleveland OHHoneycutt Richard Southwest Ave San Antonio TXMartinez Juan OAK CLIFF Pheonix AZMayo Nathan UTSA BLVD San Antonio TXMirabal Renato FIRST ST Columbus OHModebe Nnaemeka RIVERSIDE ST Houston TXMoon Ryan EAST AVE. Madison WI

Name Address

Aufgabe: Sortiere Studierende nach (state, city, street). 37

Page 38: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Last First Street City StateHernandez Monica COLLEGE PKWY San Antonio TXHohmann Shawn COLLEGE PKWY Cleveland OHGuerra John DALLAS AVE. Austin TXEdwards Brian De Zavala Rd San Antonio TXChu Henry East Ave San Diego CADunne Brendan EAST AVE. Dallas TXMoon Ryan EAST AVE. Madison WIMirabal Renato FIRST ST Columbus OHHalbeisen Gerald FOREST CIRCLE Los Angeles CADawood Hussam Lincoln Rd Detroit MIGodfrey Daryl MAIN ST Austin TXBenitez Michael North Ave Los Angeles CADevineni Soujanya Northwestern Ave Houston TXMartinez Juan OAK CLIFF Pheonix AZHawkins Richard RIVERSIDE ST San Antonio TXModebe Nnaemeka RIVERSIDE ST Houston TXHoneycutt Richard Southwest Ave San Antonio TXDangelo David Third St Detroit MIGuevara Clovis University Pkwy San Antonio TXMayo Nathan UTSA BLVD San Antonio TXBayless Andrew West Ave Houston TX

Name Address

Aufgabe: Sortiere Studierende nach (state, city, street). 38

Page 39: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Last First Street City StateGuerra John DALLAS AVE. Austin TXGodfrey Daryl MAIN ST Austin TXHohmann Shawn COLLEGE PKWY Cleveland OHMirabal Renato FIRST ST Columbus OHDunne Brendan EAST AVE. Dallas TXDawood Hussam Lincoln Rd Detroit MIDangelo David Third St Detroit MIDevineni Soujanya Northwestern Ave Houston TXModebe Nnaemeka RIVERSIDE ST Houston TXBayless Andrew West Ave Houston TXHalbeisen Gerald FOREST CIRCLE Los Angeles CABenitez Michael North Ave Los Angeles CAMoon Ryan EAST AVE. Madison WIMartinez Juan OAK CLIFF Pheonix AZHernandez Monica COLLEGE PKWY San Antonio TXEdwards Brian De Zavala Rd San Antonio TXHawkins Richard RIVERSIDE ST San Antonio TXHoneycutt Richard Southwest Ave San Antonio TXGuevara Clovis University Pkwy San Antonio TXMayo Nathan UTSA BLVD San Antonio TXChu Henry East Ave San Diego CA

Name Address

Aufgabe: Sortiere Studierende nach (state, city, street). 39

Page 40: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Last First Street City StateMartinez Juan OAK CLIFF Pheonix AZHalbeisen Gerald FOREST CIRCLE Los Angeles CABenitez Michael North Ave Los Angeles CAChu Henry East Ave San Diego CADawood Hussam Lincoln Rd Detroit MIDangelo David Third St Detroit MIHohmann Shawn COLLEGE PKWY Cleveland OHMirabal Renato FIRST ST Columbus OHGuerra John DALLAS AVE. Austin TXGodfrey Daryl MAIN ST Austin TXDunne Brendan EAST AVE. Dallas TXDevineni Soujanya Northwestern Ave Houston TXModebe Nnaemeka RIVERSIDE ST Houston TXBayless Andrew West Ave Houston TXHernandez Monica COLLEGE PKWY San Antonio TXEdwards Brian De Zavala Rd San Antonio TXHawkins Richard RIVERSIDE ST San Antonio TXHoneycutt Richard Southwest Ave San Antonio TXGuevara Clovis University Pkwy San Antonio TXMayo Nathan UTSA BLVD San Antonio TXMoon Ryan EAST AVE. Madison WI

Name Address

Aufgabe: Sortiere Studierende nach (state, city, street). 40

Page 41: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Last First Street City StateMartinez Juan OAK CLIFF Pheonix AZHalbeisen Gerald FOREST CIRCLE Los Angeles CABenitez Michael North Ave Los Angeles CAChu Henry East Ave San Diego CADawood Hussam Lincoln Rd Detroit MIDangelo David Third St Detroit MIHohmann Shawn COLLEGE PKWY Cleveland OHMirabal Renato FIRST ST Columbus OHGuerra John DALLAS AVE. Austin TXGodfrey Daryl MAIN ST Austin TXDunne Brendan EAST AVE. Dallas TXDevineni Soujanya Northwestern Ave Houston TXModebe Nnaemeka RIVERSIDE ST Houston TXBayless Andrew West Ave Houston TXHernandez Monica COLLEGE PKWY San Antonio TXEdwards Brian De Zavala Rd San Antonio TXHawkins Richard RIVERSIDE ST San Antonio TXHoneycutt Richard Southwest Ave San Antonio TXGuevara Clovis University Pkwy San Antonio TXMayo Nathan UTSA BLVD San Antonio TXMoon Ryan EAST AVE. Madison WI

Name Address

Aufgabe: Sortiere Studierende nach (state, city, street). 41

Page 42: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Last First Street City StateBayless Andrew West Ave Houston TXBenitez Michael North Ave Los Angeles CAChu Henry East Ave San Diego CADangelo David Third St Detroit MIDawood Hussam Lincoln Rd Detroit MIDevineni Soujanya Northwestern Ave Houston TXDunne Brendan EAST AVE. Dallas TXEdwards Brian De Zavala Rd San Antonio TXGodfrey Daryl MAIN ST Austin TXGuerra John DALLAS AVE. Austin TXGuevara Clovis University Pkwy San Antonio TXHalbeisen Gerald FOREST CIRCLE Los Angeles CAHawkins Richard RIVERSIDE ST San Antonio TXHernandez Monica COLLEGE PKWY San Antonio TXHohmann Shawn COLLEGE PKWY Cleveland OHHoneycutt Richard Southwest Ave San Antonio TXMartinez Juan OAK CLIFF Pheonix AZMayo Nathan UTSA BLVD San Antonio TXMirabal Renato FIRST ST Columbus OHModebe Nnaemeka RIVERSIDE ST Houston TXMoon Ryan EAST AVE. Madison WI

Name Address

Aufgabe: Sortiere Studierende nach (state, city, street). 42

Page 43: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Last First Street City StateHernandez Monica COLLEGE PKWY San Antonio TXHohmann Shawn COLLEGE PKWY Cleveland OHGuerra John DALLAS AVE. Austin TXEdwards Brian De Zavala Rd San Antonio TXChu Henry East Ave San Diego CADunne Brendan EAST AVE. Dallas TXMoon Ryan EAST AVE. Madison WIMirabal Renato FIRST ST Columbus OHHalbeisen Gerald FOREST CIRCLE Los Angeles CADawood Hussam Lincoln Rd Detroit MIGodfrey Daryl MAIN ST Austin TXBenitez Michael North Ave Los Angeles CADevineni Soujanya Northwestern Ave Houston TXMartinez Juan OAK CLIFF Pheonix AZHawkins Richard RIVERSIDE ST San Antonio TXModebe Nnaemeka RIVERSIDE ST Houston TXHoneycutt Richard Southwest Ave San Antonio TXDangelo David Third St Detroit MIGuevara Clovis University Pkwy San Antonio TXMayo Nathan UTSA BLVD San Antonio TXBayless Andrew West Ave Houston TX

Name Address

Aufgabe: Sortiere Studierende nach (state, city, street). 43

Page 44: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Last First Street City StateGuerra John DALLAS AVE. Austin TXGodfrey Daryl MAIN ST Austin TXHohmann Shawn COLLEGE PKWY Cleveland OHMirabal Renato FIRST ST Columbus OHDunne Brendan EAST AVE. Dallas TXDawood Hussam Lincoln Rd Detroit MIDangelo David Third St Detroit MIDevineni Soujanya Northwestern Ave Houston TXModebe Nnaemeka RIVERSIDE ST Houston TXBayless Andrew West Ave Houston TXHalbeisen Gerald FOREST CIRCLE Los Angeles CABenitez Michael North Ave Los Angeles CAMoon Ryan EAST AVE. Madison WIMartinez Juan OAK CLIFF Pheonix AZHernandez Monica COLLEGE PKWY San Antonio TXEdwards Brian De Zavala Rd San Antonio TXHawkins Richard RIVERSIDE ST San Antonio TXHoneycutt Richard Southwest Ave San Antonio TXGuevara Clovis University Pkwy San Antonio TXMayo Nathan UTSA BLVD San Antonio TXChu Henry East Ave San Diego CA

Name Address

Aufgabe: Sortiere Studierende nach (state, city, street). 44

Page 45: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Last First Street City StateMartinez Juan OAK CLIFF Pheonix AZHalbeisen Gerald FOREST CIRCLE Los Angeles CABenitez Michael North Ave Los Angeles CAChu Henry East Ave San Diego CADawood Hussam Lincoln Rd Detroit MIDangelo David Third St Detroit MIHohmann Shawn COLLEGE PKWY Cleveland OHMirabal Renato FIRST ST Columbus OHGuerra John DALLAS AVE. Austin TXGodfrey Daryl MAIN ST Austin TXDunne Brendan EAST AVE. Dallas TXDevineni Soujanya Northwestern Ave Houston TXModebe Nnaemeka RIVERSIDE ST Houston TXBayless Andrew West Ave Houston TXHernandez Monica COLLEGE PKWY San Antonio TXEdwards Brian De Zavala Rd San Antonio TXHawkins Richard RIVERSIDE ST San Antonio TXHoneycutt Richard Southwest Ave San Antonio TXGuevara Clovis University Pkwy San Antonio TXMayo Nathan UTSA BLVD San Antonio TXMoon Ryan EAST AVE. Madison WI

Name Address

Aufgabe: Sortiere Studierende nach (state, city, street). 45

Page 46: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Stabiles Sortieren

• Die meisten Θ(n2)-Sortieralgorithmen sind stabil– oder können “einfach” stabil gemacht werden

• Die meisten Θ(n log n)-Sortieralgorithmen sind nicht stabil– Ausnahme: Merge-Sort

• Generischer Ansatz, Stabilität zu erzeugen:– Verwende zwei Schlüssel, der zweite ist der originale Index des

Elements– Wenn zwei Elemente gleich, vergleiche zweite Schlüsselkomponenten

[5, 6, 5, 1, 2, 3, 2, 6]

[(5, 1), (6, 2), (5, 3), (1, 4), (2, 5), (3, 6), (2, 7), (6, 8)]

(5, 1) < (5, 3) (2, 5) < (2, 7) 46

Page 47: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Wie kann man sehr große Zahlen sortieren?

198099109123518183599340199540380128115295384700101594539614696382408360201039258538614386507628681328936738148652090990369197987084087096653020299185664124421234516454785392075747859131885530995223593137397354267057490443618111767795293581914837377527815501764221221110674142522204403312937607718098797338329180836856504702326654684056982119770959427525245528076153239047050820305445639847201611168478334240651199238019

Zahlen dieser Art sind zu groß für den Integer-Datentyp, sie werden als Zeichenkette repräsentiert

Verwende vergleichsbasiertes Sortieren mit einerZeichenkettenvergleichsfunktion

if A[i] < A[j] wird zu if vergleiche(A[i], A[j]) < 0 mit

function vergleiche(s, t)for i = 1 to max( { length(s), length(t) } ) do

if s[i] < t[i] thenreturn -1else if s[i] > t[i] then

return 1return 0

Was sind die Kosten des Vergleichs von zwei Zeichenketten der Länge d?

Gesamtkosten: Θ(d n log n)

Θ(d)

47

Jede Zeile sei eine“lange” Zahl, eineGensequenz oder….

Page 48: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Radix-Sort

• Ähnlich wie das Sortieren von Adressbüchern• Behandle jede Zahl als Sortierschlüssel• Starte vom Least-significant-Bit

198099109123518183599340199540380128115295384700101594539614696382408360201039258538614386507628681328936

Most significant Least significant

Radix-Sort wurde schon 1887 in Arbeiten von Herman Hollerith zu Volkszählungsmaschinen verwendet 48

Jede Zeile entsprichteiner “langen” Zahl

Page 49: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Radix-Sort: Illustration

• Hier ein vereinfachtes Beispiel:

Jede Zeile entspricht einerlangen Zahl

7 4 27 4 80 5 46 8 84 1 22 3 09 3 51 1 61 6 14 3 43 8 56 6 60 3 10 1 33 6 51 7 30 1 6

49

Page 50: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Radix-Sort: Illustration

• Sortiere nach letzer Zahl:2 3 01 6 10 3 17 4 24 1 20 1 31 7 30 5 44 3 49 3 53 8 53 6 51 1 66 6 60 1 67 4 86 8 8

50

Page 51: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Radix-Sort: Illustration

• Sortiere nach zweitletzer Zahl:4 1 20 1 31 1 60 1 62 3 00 3 14 3 49 3 57 4 27 4 80 5 41 6 13 6 56 6 61 7 33 8 56 8 8

51

Page 52: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Radix-Sort: Illustration

• Sortiere nach erster Zahl:0 1 30 1 60 3 10 5 41 1 61 6 11 7 32 3 03 6 53 8 54 1 24 3 46 6 66 8 87 4 27 4 89 3 5

52

Page 53: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Zeitkomplexität

• Sortierung jeder der d Spalten mit Counting-Sort• Gesamtkosten: d (n + k)

– Wähle k = 10– Gesamtkosten: Θ(dn)

• Partitionierung der d Zahlen in z.B. in Dreiergruppen– Gesamtkosten: (n+103)d/3

• Wir arbeiten mit Binärzahlen anstellen von Dezimalen– Partitionierung der d Bits in Gruppen von r Bits– Gesamtkosten: (n+2r)d/r– Wähle r = log n– Gesamtkosten: dn / log n– Vergleiche mit dn log n

• Aber: Radix-Sort hat hohen konstanten Faktor

53

Page 54: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Platzkomplexität

• Verwendung von Counting-Sort• Daher zusätzlicher Speicher nötig: 𝛳(n)

54

Page 55: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

55

Listen als abstrakte Datentypen (ADTs)

Denotation: [4, 2, 9]

Operationen:

• function makeList() liefert neue Liste (am Anfang leer)

• procedure insert(e, l) fügt Element e am Anfang in Liste l ein,verändert l

• procedure delete(e, l) löscht Element e sofern enthalten,verändert l, wenn ein Element gelöscht wird

• function first(l) gibt Last-in-Element zurück (Fehler, wenn l leer)

• procedure deleteFirst(l) löscht Last-in-Element in l (Fehler, wenn l leer)• function length(l) gibt Anzahl der Elemente in l zurück • function mtList?(l) gibt true zurück, wenn l leer ist, sonst false

Iteration (last-in first-out):

• for e in l do ... oder auch for e∈ l do ...

http://www14.in.tum.de/lehre/2008WS/ea/index.html.de

Page 56: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Listen intern (Beispiel)

56

l Verkettete 2-Tupel

Im ADT-Sinne nur „intern“ verwendet, dannüber internalRepr(l) referenziert

möglicherweise vieleweitere Informationen(z.B. die aktuelle Länge)

4 2 9 Elemente der Liste

Page 57: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Listen als Glaskästen

• (e, l) liefert Tupel mit Element e und Liste l• () oder auch [] steht für ein besonderes Tupel, das die leere

Liste symbolisiert (auch nil genannt)• Beispiele:

– [4, 2, 9] = (4, (2, (9, ()))) [4] = (4, ()) [] = ()

• Sei l1 = [4, 2, 9], dann Zugriff mit (e, l2) := l1dann gilt: e = 4 und l2 = [2, 9] = (2, (9, ()))

57

Verkettete Tupel

4 2 9

l

Page 58: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Listen als Glaskästen

Denotation: [4, 2, 9]

Operationen:

• function cons(e, l) fügt Element e am Anfang in Liste l ein,verändert l nicht

• function first(l) gibt die erste Komponente des Tupels zurück (Fehler, wenn l leer)

• function rest(l) gibt die zweite Komponente des Tupels zurück (Fehler, wenn l leer)

• function length(l) gibt Anzahl der Elemente in l zurück • function mt?(l) gibt true zurück, wenn l = () ist, sonst false

Iteration (last-in first-out):

• for e in l do ... oder auch for e∈ l do ...

58

Page 59: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

59

Kellerspeicher / Stapelspeicher / Stack

Denotation: [4, 2, 9] (4 ist "oben")

Operationen:

• function makeStack() liefert leeren Keller

• procedure push(e, s) fügt Element e oben in den Keller s ein, verändert s

• function top(s) gibt oberes Element zurück (Fehler, wenn s leer)

• procedure pop(s) löscht Top-Element in s (Fehler, wenn s leer)• function mtStack?(s) gibt true zurück, wenn s leer ist, sonst false

Iteration: nicht vorgesehen (evtl. wie Liste)

http://www14.in.tum.de/lehre/2008WS/ea/index.html.de

Page 60: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Keller intern (Beispiel)

60

s Verkettete 2-Tupel

Im ADT-Sinne nur „intern“ verwendet, dannüber internalRepr(s) referenziert

möglicherweise vieleweitere Informationen

4 2 9 Elemente auf demKeller (4 ist oben)

Page 61: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Kellerspeicher als Glaskästen?

61

Verkettete Tupel

4 2 9

Page 62: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

62

Schlange / Queue (First-in-First-out-Speicher)

Denotation: [4, 2, 9] (4 ist "hinten", 9 ist "vorn", kommt zuerst dran)

Operationen:

• function makeQueue() liefert leere Warteschlange

• procedure enqueue(e, q) fügt Element e hinten in die Schlange q ein,verändert q

• function next(q) gibt vorderes Element zurück, verändert q nicht

• function dequeue (q) gibt vorderes Element zurück, verändert q• function mtQueue?(q) gibt true zurück, wenn q leer ist, sonst false

Iteration: nicht vorgesehen (evtl. wie Liste)

http://www14.in.tum.de/lehre/2008WS/ea/index.html.de

Page 63: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Queue intern (Beispiel)

63

q Verkettete 2-Tupel

Im ADT-Sinne nur „intern“ verwendet, dannüber internalRepr(s) referenziert

möglicherweise vieleweitere Informationen

9 2 4 Elemente in derSchlange (9 ist vorn, 4 ist hinten)

Page 64: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Bucket-Sort

1. procedure BUCKET-SORT (A)2. n ← length(A) , k ß Anzahl der Eimer3. for i = 1 to n do 4. Füge A[i] in den richtigen Eimer ein5. for i = 1 to k do 6. Sortiere i-ten Eimer mit einer

vergleichsbasierten Sortierfunktion7. Hänge die Eimer in der richtigen

Ordnung hintereinander

64Bildquelle: Portugiesisches Wikipedia

Page 65: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Wie wollen wir die Eimer implementieren?

• Verkettete Listen oder Felder?• Verkettete Listen sparen Platz

(einige Eimer haben kaumEinträge, andere haben viele)

• Aber mit verkettetenListen können wir“schnelle” Sortierverfahrenwie Heap-Sort oder Quicksort nicht verwenden

65

Page 66: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Analyse von Bucketsort

• Sei S(m) die Anzahl der Vergleiche für einen Eimermit m Schlüsseln

• Setze ni auf die Anzahl der Schlüssel im i-ten Eimer• Gesamtzahl der Vergleiche = ∑k

i=1 S(ni) bei k Eimern

66

Page 67: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Analyse (2)

• Sei S(m)=Θ(m log m)• Falls die Schlüssel gleichmäßig verteilt sind,

beträgt die Eimergröße n/k• Gesamtzahl der Vergleiche

= k(n/k) log(n/k)= n log(n/k)

• Falls k=n/10 , dann reichen n log(10) Vergleiche(Laufzeit ist linear in n)

67

Page 68: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Lineare Sortierung: Einsicht

Je mehr man über das Problem weiß, desto eher kann man einen optimalen Algorithmus entwerfen• Gesucht ist ein Verfahren S, so dass

{ P } S { Q } gilt (Notation nach Hoare)– Vorbedingung: P =?– Invarianten („Axiome“): I = ?– Nachbedingung: Q = ∀1≤i<j≤n: A[i] ≤ A[j]– Nebenbedingungen: ?

68

Page 69: Algorithmen und Datenstrukturenmoeller/Lectures/... · Modebe Nnaemeka RIVERSIDE ST Houston TX Moon Ryan EAST AVE. Madison WI Name Address Aufgabe: SortiereStudierendenach(state,

Zusammenfassung

• Bisher behandelt:– Sortieren durch Vergleichen (vorige Sitzungen)– Sortieren durch Verteilen (lineares Sortieren)– Prioritätswarteschlangen als Nutzung von MaxHeaps

• Es kommt:– MinHeaps (zum Vergleich mal anders herum)– Binomiale Heaps (effiziente Vereinigung von Heaps)– Fibonacci Heaps (Einführung der amortisierten Analyse)

69