2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen...
Transcript of 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen...
![Page 1: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/1.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
2.3 Sortieren
2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 Höhere Sortierverfahren 2.3.4 Komplexität von Sortierverfahren 2.3.5 Spezielle Sortierverfahren
1
![Page 2: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/2.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Stabilität von Sortieralgorithmen
• Ein Sortieralgorithmus heißt stabil, wenn sich die relative Reihenfolge von gleichen Elementen während des Sortierens nicht ändert.
• Beispiel:
2
1 1 2 2 1 3
3 2 2
3 2 2
1 1 1
1 1 1
stabil
nicht stabil
![Page 3: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/3.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort
• Annahme: R1, R2, ... , Rn ∈ 1,... ,k • Idee: Bestimme zu jedem Ri die Zahl
der Elemente ≤Ri und sortiere Ri an die entsprechende Stelle
3
![Page 4: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/4.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Algorithmus
• CountingSort(A[1..n],C[1..n]) for i ← 1 to k do B[ i ] ← 0 for i ← 1 to n do B[ A[ i ] ] ← B[ A[ i ] ]+1 for i ← 2 to k do B[ i ] ← B[ i ] + B[ i−1 ] for i ← n downto 1 do C[ B[ A[ i ] ] ] ← A[ i ] B[ A[ i ] ] ← B[ A[ i ] ]−1
4
![Page 5: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/5.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Algorithmus
• CountingSort(A[1..n],C[1..n]) for i ← 1 to k do B[ i ] ← 0 for i ← 1 to n do B[ A[ i ] ] ← B[ A[ i ] ]+1 for i ← 2 to k do B[ i ] ← B[ i ] + B[ i−1 ] for i ← n downto 1 do C[ B[ A[ i ] ] ] ← A[ i ] B[ A[ i ] ] ← B[ A[ i ] ]−1
5
Eingabe: A[1..n] Ausgabe: C[1..n]
![Page 6: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/6.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Algorithmus
• CountingSort(A[1..n],C[1..n]) for i ← 1 to k do B[ i ] ← 0 for i ← 1 to n do B[ A[ i ] ] ← B[ A[ i ] ]+1 for i ← 2 to k do B[ i ] ← B[ i ] + B[ i−1 ] for i ← n downto 1 do C[ B[ A[ i ] ] ] ← A[ i ] B[ A[ i ] ] ← B[ A[ i ] ]−1
6
B ist mit 0en initialisiert
![Page 7: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/7.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Algorithmus
• CountingSort(A[1..n],C[1..n]) for i ← 1 to k do B[ i ] ← 0 for i ← 1 to n do B[ A[ i ] ] ← B[ A[ i ] ]+1 for i ← 2 to k do B[ i ] ← B[ i ] + B[ i−1 ] for i ← n downto 1 do C[ B[ A[ i ] ] ] ← A[ i ] B[ A[ i ] ] ← B[ A[ i ] ]−1
7
B[j] enthält die Anzahl der Elemente = j
![Page 8: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/8.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Algorithmus
• CountingSort(A[1..n],C[1..n]) for i ← 1 to k do B[ i ] ← 0 for i ← 1 to n do B[ A[ i ] ] ← B[ A[ i ] ]+1 for i ← 2 to k do B[ i ] ← B[ i ] + B[ i−1 ] for i ← n downto 1 do C[ B[ A[ i ] ] ] ← A[ i ] B[ A[ i ] ] ← B[ A[ i ] ]−1
8
B[j] enthält die Anzahl der Elemente ≤ j
![Page 9: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/9.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Algorithmus
• CountingSort(A[1..n],C[1..n]) for i ← 1 to k do B[ i ] ← 0 for i ← 1 to n do B[ A[ i ] ] ← B[ A[ i ] ]+1 for i ← 2 to k do B[ i ] ← B[ i ] + B[ i−1 ] for i ← n downto 1 do C[ B[ A[ i ] ] ] ← A[ i ] B[ A[ i ] ] ← B[ A[ i ] ]−1
9
B[j] enthält das j-te Element
![Page 10: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/10.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
10
1 4 1 3 4 4 6 3 A n=8, k=6
![Page 11: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/11.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
11
1 4 1 3 4 4 6 3
0 0 0 0 0 0
A
B
n=8, k=6
1 2 3 4 5 6
![Page 12: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/12.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
12
1 4 1 3 4 4 6 3
0 0 0 1 0 0
A
B
n=8, k=6
1 2 3 4 5 6
![Page 13: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/13.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
13
1 4 1 3 4 4 3
0 0 1 1 0 0
A
B
n=8, k=6
1 2 3 4 5 6
6
![Page 14: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/14.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
14
1 4 1 3 4 6 3
1 0 1 1 0 0
A
B
n=8, k=6
1 2 3 4 5 6
4
![Page 15: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/15.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
15
4 1 3 4 4 6 3
1 0 1 1 0 1
A
B
n=8, k=6
1 2 3 4 5 6
1
![Page 16: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/16.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
16
1 4 1 4 4 6 3
1 0 1 2 0 1
A
B
n=8, k=6
1 2 3 4 5 6
3
![Page 17: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/17.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
17
1 4 1 3 4 4 6 3
3 0 1 2 0 2
A
B
n=8, k=6
1 2 3 4 5 6
![Page 18: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/18.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
18
1 4 1 3 4 4 6 3
3 0 1 2 2
A
B
n=8, k=6
1 2 3 4 5 6
+
0
![Page 19: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/19.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
19
1 4 1 3 4 4 6 3
3 0 1 2 2
A
B
n=8, k=6
1 2 3 4 5 6
2
![Page 20: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/20.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
20
1 4 1 3 4 4 6 3
3 0 1 2 2
A
B
n=8, k=6
1 2 3 4 5 6
+
2
![Page 21: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/21.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
21
1 4 1 3 4 4 6 3
3 0 1 2 2
A
B
n=8, k=6
1 2 3 4 5 6
4
![Page 22: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/22.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
22
1 4 1 3 4 4 6 3
0 1 4 2 2
A
B
n=8, k=6
1 2 3 4 5 6
+
3
![Page 23: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/23.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
23
1 4 1 3 4 4 6 3
0 1 4 2 2
A
B
n=8, k=6
1 2 3 4 5 6
7
![Page 24: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/24.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
24
1 4 1 3 4 4 6 3
7 8 4 2 2
A
B
n=8, k=6
1 2 3 4 5 6
7
![Page 25: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/25.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
25
1 4 1 3 4 4 6 3
7 8 4 2 2
A
B
n=8, k=6
1 2 3 4 5 6
7
C 1 2 3 4 5 6 8 7
![Page 26: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/26.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
26
1 4 1 3 4 4 6 3
7 8 4 2 2
A
B
n=8, k=6
1 2 3 4 5 6
7
C 1 2 3 4 5 6 8 7
![Page 27: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/27.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
27
1 4 1 3 4 4 6 3
7 8 4 2 2
A
B
n=8, k=6
1 2 3 4 5 6
7
C 1 2 3 4 5 6 8 7
4
![Page 28: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/28.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
28
1 4 1 3 4 4 6 3
7 8 4 2 2
A
B
n=8, k=6
1 2 3 4 5 6
6
C 1 2 3 4 5 6 8 7
4
![Page 29: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/29.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
29
1 4 1 3 4 4 6 3
7 8 4 2 2
A
B
n=8, k=6
1 2 3 4 5 6
6
C 1 2 3 4 5 6 8 7
4
![Page 30: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/30.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
30
1 4 1 3 4 4 6 3
7 8 4 2 2
A
B
n=8, k=6
1 2 3 4 5 6
6
1 C 1 2 3 4 5 6 8 7
4
![Page 31: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/31.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
31
2 1
1 4 1 3 4 4 6 3
7 8 4
A
B
n=8, k=6
1 2 3 4 5 6
6
1 C 1 2 3 4 5 6 8 7
4
![Page 32: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/32.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
32
2 1
1 4 1 3 4 4 6 3
7 8 4
A
B
n=8, k=6
1 2 3 4 5 6
6
1 C 1 2 3 4 5 6 8 7
4
![Page 33: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/33.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
33
2 1
1 4 1 3 4 4 6 3
7 8 4
A
B
n=8, k=6
1 2 3 4 5 6
6
1 C 1 2 3 4 5 6 8 7
4 4
![Page 34: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/34.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
34
2 1
1 4 1 3 4 4 6 3
7 8 4
A
B
n=8, k=6
1 2 3 4 5 6
5
1 C 1 2 3 4 5 6 8 7
4 4
![Page 35: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/35.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
35
2 1
1 4 1 3 4 4 6 3
7 8 4
A
B
n=8, k=6
1 2 3 4 5 6
5
1 C 1 2 3 4 5 6 8 7
4 4
![Page 36: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/36.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
36
2 1
1 4 1 3 4 4 6 3
7 8 4
A
B
n=8, k=6
1 2 3 4 5 6
5
3 1 C 1 2 3 4 5 6 8 7
4 4
![Page 37: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/37.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
37
2 1
1 4 1 3 4 4 6 3
7 8 3
A
B
n=8, k=6
1 2 3 4 5 6
5
3 1 C 1 2 3 4 5 6 8 7
4 4
![Page 38: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/38.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
38
2 1
1 4 1 3 4 4 6 3
7 8 3
A
B
n=8, k=6
1 2 3 4 5 6
5
3 1 1 C 1 2 3 4 5 6 8 7
4 4
![Page 39: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/39.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
39
2 0
1 4 1 3 4 4 6 3
7 8 3
A
B
n=8, k=6
1 2 3 4 5 6
5
3 1 1 C 1 2 3 4 5 6 8 7
4 4 4
![Page 40: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/40.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
40
2 0
1 4 1 3 4 4 6 3
7 8 3
A
B
n=8, k=6
1 2 3 4 5 6
4
3 6 1 1 C 1 2 3 4 5 6 8 7
4 4 4
![Page 41: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/41.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
41
2 0
1 4 1 3 4 4 6 3
7 7 3
A
B
n=8, k=6
1 2 3 4 5 6
4
3 6 3 1 1 C 1 2 3 4 5 6 8 7
4 4 4
![Page 42: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/42.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Beispiel
42
2 0
1 4 1 3 4 4 6 3
7 7 2
A
B
n=8, k=6
1 2 3 4 5 6
4
3 6 3 1 1 C 1 2 3 4 5 6 8 7
4 4 4
![Page 43: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/43.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Aufwand
• CountingSort(A[1..n],C[1..n]) for i ← 1 to k do B[ i ] ← 0 for i ← 1 to n do B[ A[ i ] ] ← B[ A[ i ] ]+1 for i ← 2 to k do B[ i ] ← B[ i ] + B[ i−1 ] for i ← n downto 1 do C[ B[ A[ i ] ] ] ← A[ i ] B[ A[ i ] ] ← B[ A[ i ] ]−1
43
O(k)
O(k+n)
O(n)
O(k)
O(n)
![Page 44: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/44.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Counting-Sort: Aufwand
• Counting-Sort ist nur sinnvoll, wenn k = O(n) und damit T(n) = O(n)
• Counting-Sort verwendet keine Vergleiche
• Counting-Sort ist stabil
44
![Page 45: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/45.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Radix-Sort
• Annahme: R1, R2, ... , Rn ∈ 0,... ,kd−1 • „d-stellige Zahlen zur Basis k“ • „Wörter der Länge d aus einem
Alphabet der Größe k“
45
![Page 46: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/46.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Radix-Sort
• RadixSort(A[1..n]) for i ← 1 to d do „sortiere A stabil nach Stelle i“
46
![Page 47: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/47.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Radix-Sort: Beispiel
47
F C T
H L P
N L P
R F T
H F N
P C A
F L L
![Page 48: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/48.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Radix-Sort: Beispiel
48
F C T
H L P
N L P
R F T
H F N
P C A
F L L
![Page 49: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/49.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Radix-Sort: Beispiel
49
F C T
H L P
N L P
R F T
H F N
P C A
F L L
P C A
F L L
H F N
H L P
N L P
F C T
R F T
![Page 50: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/50.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Radix-Sort: Beispiel
50
F C T
H L P
N L P
R F T
H F N
P C A
F L L
P C A
F L L
H F N
H L P
N L P
F C T
R F T
![Page 51: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/51.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Radix-Sort: Beispiel
51
F C T
H L P
N L P
R F T
H F N
P C A
F L L
P C A
F L L
H F N
H L P
N L P
F C T
R F T
![Page 52: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/52.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Radix-Sort: Beispiel
52
F C T
H L P
N L P
R F T
H F N
P C A
F L L
P C A
F L L
H F N
H L P
N L P
F C T
R F T
F C T
H L P
N L P
R F T
H F N
P C A
F L L
![Page 53: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/53.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Radix-Sort: Beispiel
53
F C T
H L P
N L P
R F T
H F N
P C A
F L L
P C A
F L L
H F N
H L P
N L P
F C T
R F T
F C T
H L P
N L P
R F T
H F N
P C A
F L L
![Page 54: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/54.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Radix-Sort: Beispiel
54
F C T
H L P
N L P
R F T
H F N
P C A
F L L
P C A
F L L
H F N
H L P
N L P
F C T
R F T
P C A
F L L
H F N
H L P
N L P
F C T
R F T
F C T
H L P
N L P
R F T
H F N
P C A
F L L
![Page 55: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/55.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Radix-Sort: Beispiel
55
F C T
H L P
N L P
R F T
H F N
P C A
F L L
P C A
F L L
H F N
H L P
N L P
F C T
R F T
P C A
F L L
H F N
H L P
N L P
F C T
R F T
F C T
H L P
N L P
R F T
H F N
P C A
F L L
![Page 56: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/56.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Radix-Sort: Aufwand
• RadixSort(A[1..n]) for i ← 1 to d do „sortiere A stabil nach Stelle i“
56
![Page 57: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/57.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Radix-Sort: Aufwand
• RadixSort(A[1..n]) for i ← 1 to d do „sortiere A stabil mit Counting-Sort nach Stelle i“
57
![Page 58: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/58.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Radix-Sort: Aufwand
• RadixSort(A[1..n]) for i ← 1 to d do „sortiere A stabil mit Counting-Sort nach Stelle i“
58
T(k,d,n)=O(d×(n+k))
![Page 59: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/59.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Radix-Sort: Aufwand
• Beachte: Ist k gegeben, so benötigt man zur Darstellung von n verschiedenen Elementen mindestens d ≥ logk(n) Stellen → T(n) = ΩΩ(n×log n)
59
![Page 60: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/60.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort
• Annahme: R1, R2, ... , Rn gleichverteilt aus [0,1)
• Idee: 1. Unterteile [0,1) in n „Buckets“
[0,1/n), [1/n,2/n), ... , [(n−1)/n,1) 2. Füge die Ri in die Buckets ein (erwartet:
ein Element pro Bucket) 3. Sortiere die Buckets 4. Hänge die Buckets aneinander
60
![Page 61: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/61.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Algorithmus
• BucketSort(A[1..n]) new B[0..n−1] for i ← 1 to n do push(B[⎣n×A[ i ]⎦], A[ i ]) for i ← 0 to n−1 do sort(B[ i ]) c ← 1 for i ← 0 to n−1 do for j ← 1 to size(B[ i ]) do A[c] ← B[ i ][ j ] c ← c+1
61
![Page 62: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/62.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Beispiel
62
0.73 0.24 0.75 0.31 0.12 0.21 0.05 0.20 0.82 0.59
[0.9,1.0) [0.8,0.9) [0.7,0.8) [0.6,0.7) [0.5,0.6) [0.4,0.5) [0.3,0.4) [0.2,0.3) [0.1,0.2) [0.0,0.1) 0
1 2
5
8 7 6
9
3 4
n=10
![Page 63: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/63.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Beispiel
63
0.73 0.24 0.75 0.31 0.12 0.21 0.05 0.20 0.82 0.59
0.59
[0.9,1.0) [0.8,0.9) [0.7,0.8) [0.6,0.7) [0.5,0.6) [0.4,0.5) [0.3,0.4) [0.2,0.3) [0.1,0.2) [0.0,0.1) 0
1 2
5
8 7 6
9
3 4
n=10
![Page 64: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/64.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Beispiel
64
0.73 0.24 0.75 0.31 0.12 0.21 0.05 0.20 0.82 0.59
0.59
0.73
[0.9,1.0) [0.8,0.9) [0.7,0.8) [0.6,0.7) [0.5,0.6) [0.4,0.5) [0.3,0.4) [0.2,0.3) [0.1,0.2) [0.0,0.1) 0
1 2
5
8 7 6
9
3 4
n=10
![Page 65: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/65.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Beispiel
65
0.73 0.24 0.75 0.31 0.12 0.21 0.05 0.20 0.82 0.59
0.59
0.73
0.24
[0.9,1.0) [0.8,0.9) [0.7,0.8) [0.6,0.7) [0.5,0.6) [0.4,0.5) [0.3,0.4) [0.2,0.3) [0.1,0.2) [0.0,0.1) 0
1 2
5
8 7 6
9
3 4
n=10
![Page 66: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/66.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Beispiel
66
0.73 0.24 0.75 0.31 0.12 0.21 0.05 0.20 0.82 0.59
0.59
0.73
0.24
0.75
[0.9,1.0) [0.8,0.9) [0.7,0.8) [0.6,0.7) [0.5,0.6) [0.4,0.5) [0.3,0.4) [0.2,0.3) [0.1,0.2) [0.0,0.1) 0
1 2
5
8 7 6
9
3 4
n=10
![Page 67: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/67.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Beispiel
67
0.73 0.24 0.75 0.31 0.12 0.21 0.05 0.20 0.82 0.59
0.59
0.73
0.24
0.75
0.31
[0.9,1.0) [0.8,0.9) [0.7,0.8) [0.6,0.7) [0.5,0.6) [0.4,0.5) [0.3,0.4) [0.2,0.3) [0.1,0.2) [0.0,0.1) 0
1 2
5
8 7 6
9
3 4
n=10
![Page 68: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/68.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Beispiel
68
0.73 0.24 0.75 0.31 0.12 0.21 0.05 0.20 0.82 0.59
0.59
0.73
0.24
0.75
0.31 0.21
[0.9,1.0) [0.8,0.9) [0.7,0.8) [0.6,0.7) [0.5,0.6) [0.4,0.5) [0.3,0.4) [0.2,0.3) [0.1,0.2) [0.0,0.1) 0
1 2
5
8 7 6
9
3 4
n=10
![Page 69: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/69.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Beispiel
69
0.73 0.24 0.75 0.31 0.12 0.21 0.05 0.20 0.82 0.59
0.59
0.73
0.24
0.75
0.31 0.21
0.12
[0.9,1.0) [0.8,0.9) [0.7,0.8) [0.6,0.7) [0.5,0.6) [0.4,0.5) [0.3,0.4) [0.2,0.3) [0.1,0.2) [0.0,0.1) 0
1 2
5
8 7 6
9
3 4
n=10
![Page 70: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/70.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Beispiel
70
0.73 0.24 0.75 0.31 0.12 0.21 0.05 0.20 0.82 0.59
0.59
0.73
0.24
0.75
0.31 0.21
0.12
0.82 [0.9,1.0) [0.8,0.9) [0.7,0.8) [0.6,0.7) [0.5,0.6) [0.4,0.5) [0.3,0.4) [0.2,0.3) [0.1,0.2) [0.0,0.1) 0
1 2
5
8 7 6
9
3 4
n=10
![Page 71: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/71.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Beispiel
71
0.73 0.24 0.75 0.31 0.12 0.21 0.05 0.20 0.82 0.59
0.59
0.73
0.24
0.75
0.31 0.21
0.12
0.82
0.20
[0.9,1.0) [0.8,0.9) [0.7,0.8) [0.6,0.7) [0.5,0.6) [0.4,0.5) [0.3,0.4) [0.2,0.3) [0.1,0.2) [0.0,0.1) 0
1 2
5
8 7 6
9
3 4
n=10
![Page 72: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/72.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Beispiel
72
0.73 0.24 0.75 0.31 0.12 0.21 0.05 0.20 0.82 0.59
0.59
0.73
0.24
0.75
0.31 0.21
0.12
0.82
0.20
0.05
[0.9,1.0) [0.8,0.9) [0.7,0.8) [0.6,0.7) [0.5,0.6) [0.4,0.5) [0.3,0.4) [0.2,0.3) [0.1,0.2) [0.0,0.1) 0
1 2
5
8 7 6
9
3 4
n=10
![Page 73: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/73.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Beispiel
73
0.73 0.24 0.75 0.31 0.12 0.21 0.05 0.20 0.82 0.59
0.59
0.73
0.24
0.75
0.31 0.21
0.12
0.82
0.20
0.05
[0.9,1.0) [0.8,0.9) [0.7,0.8) [0.6,0.7) [0.5,0.6) [0.4,0.5) [0.3,0.4) [0.2,0.3) [0.1,0.2) [0.0,0.1) 0
1 2
5
8 7 6
9
3 4
n=10
![Page 74: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/74.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Beispiel
74
0.73 0.24 0.75 0.31 0.12 0.21 0.05 0.20 0.82 0.59
0.59
0.73
0.24
0.75
0.31 0.21
0.12
0.82
0.20
0.05
[0.9,1.0) [0.8,0.9) [0.7,0.8) [0.6,0.7) [0.5,0.6) [0.4,0.5) [0.3,0.4) [0.2,0.3) [0.1,0.2) [0.0,0.1) 0
1 2
5
8 7 6
9
3 4
n=10
![Page 75: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/75.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Beispiel
75
0.73 0.24 0.75 0.31 0.12 0.21 0.05 0.20 0.82 0.59
0.59
0.73
0.24
0.75
0.31 0.21
0.12
0.82
0.20
0.05
[0.9,1.0) [0.8,0.9) [0.7,0.8) [0.6,0.7) [0.5,0.6) [0.4,0.5) [0.3,0.4) [0.2,0.3) [0.1,0.2) [0.0,0.1) 0
1 2
5
8 7 6
9
3 4
n=10
![Page 76: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/76.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Beispiel
76
0.73 0.24 0.75 0.31 0.12 0.21 0.05 0.20 0.82 0.59
0.59
0.73 0.75
0.31
0.12
0.82
0.24 0.21 0.20
0.05
[0.9,1.0) [0.8,0.9) [0.7,0.8) [0.6,0.7) [0.5,0.6) [0.4,0.5) [0.3,0.4) [0.2,0.3) [0.1,0.2) [0.0,0.1) 0
1 2
5
8 7 6
9
3 4
n=10
![Page 77: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/77.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Beispiel
77
0.73 0.24 0.75 0.31 0.12 0.21 0.05 0.20 0.82 0.59
0.59
0.73 0.75
0.31
0.12
0.82
0.20 0.21 0.24
0.05
[0.9,1.0) [0.8,0.9) [0.7,0.8) [0.6,0.7) [0.5,0.6) [0.4,0.5) [0.3,0.4) [0.2,0.3) [0.1,0.2) [0.0,0.1) 0
1 2
5
8 7 6
9
3 4
n=10
![Page 78: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/78.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Beispiel
78
0.73 0.24 0.75 0.31 0.12 0.21 0.05 0.20 0.82 0.59
0.59
0.73 0.75
0.31
0.12
0.82
0.20 0.21 0.24
0.05
[0.9,1.0) [0.8,0.9) [0.7,0.8) [0.6,0.7) [0.5,0.6) [0.4,0.5) [0.3,0.4) [0.2,0.3) [0.1,0.2) [0.0,0.1) 0
1 2
5
8 7 6
9
3 4
n=10
![Page 79: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/79.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Beispiel
79
0.73 0.24 0.75 0.31 0.12 0.21 0.05 0.20 0.82 0.59
0.59
0.73 0.75
0.31
0.12
0.82
0.20 0.21 0.24
0.05
[0.9,1.0) [0.8,0.9) [0.7,0.8) [0.6,0.7) [0.5,0.6) [0.4,0.5) [0.3,0.4) [0.2,0.3) [0.1,0.2) [0.0,0.1) 0
1 2
5
8 7 6
9
3 4
n=10
![Page 80: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/80.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Beispiel
80
0.73 0.24 0.75 0.31 0.12 0.21 0.05 0.20 0.82 0.59
0.59
0.73 0.75
0.31
0.12
0.82
0.20 0.21 0.24
0.05
[0.9,1.0) [0.8,0.9) [0.7,0.8) [0.6,0.7) [0.5,0.6) [0.4,0.5) [0.3,0.4) [0.2,0.3) [0.1,0.2) [0.0,0.1) 0
1 2
5
8 7 6
9
3 4
n=10
![Page 81: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/81.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Beispiel
81
0.73 0.24 0.75 0.31 0.12 0.21 0.05 0.20 0.82 0.59
0.59
0.73 0.75
0.31
0.12
0.82
0.20 0.21 0.24
0.05
[0.9,1.0) [0.8,0.9) [0.7,0.8) [0.6,0.7) [0.5,0.6) [0.4,0.5) [0.3,0.4) [0.2,0.3) [0.1,0.2) [0.0,0.1) 0
1 2
5
8 7 6
9
3 4
n=10
![Page 82: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/82.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Beispiel
82
0.73 0.24 0.75 0.31 0.12 0.21 0.05 0.20 0.82 0.59
0.59
0.73 0.75
0.31
0.12
0.82
0.20 0.21 0.24
0.05
[0.9,1.0) [0.8,0.9) [0.7,0.8) [0.6,0.7) [0.5,0.6) [0.4,0.5) [0.3,0.4) [0.2,0.3) [0.1,0.2) [0.0,0.1) 0
1 2
5
8 7 6
9
3 4
n=10
![Page 83: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/83.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Beispiel
83
0.73 0.24 0.75 0.31 0.12 0.21 0.05 0.20 0.82 0.59
0.59
0.73 0.75
0.31
0.12
0.82
0.20 0.21 0.24
0.05 n=10
![Page 84: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/84.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Beispiel
84
0.73 0.24 0.75 0.31 0.12 0.21 0.05 0.20 0.82 0.59
0.59 0.73 0.75 0.31 0.12 0.82 0.20 0.21 0.24 0.05
n=10
![Page 85: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/85.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Analyse
• Diskrete Zufallsvariable
• Erwartungswert
• Varianz
85
![Page 86: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/86.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Analyse
• X=1 mit 50 % Wahrscheinlichkeit X=3 mit 50 % Wahrscheinlichkeit
• Erwartungswert: E(X) = 1×0.5 + 3×0.5 = 2.0
• X=1 mit 75 % Wahrscheinlichkeit X=3 mit 25 % Wahrscheinlichkeit
• Erwartungswert: E(X) = 1×0.75 + 3×0.25 = 1.5
86
![Page 87: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/87.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Analyse
• X=1 mit 50 % Wahrscheinlichkeit X=3 mit 50 % Wahrscheinlichkeit
• Varianz: V(X) = (1−2)2×0.5 + (3−2)2×0.5 = 1.0
• X=1 mit 75 % Wahrscheinlichkeit X=3 mit 25 % Wahrscheinlichkeit
• Varianz: V(X) = (1−1.5)2×0.75 + (3−1.5)2×0.25 = 0.75
87
![Page 88: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/88.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Analyse
• Sei ni die Zahl der Elemente in Bucket i • Wahrscheinlichkeit, dass ein Element in
Bucket i fällt ist p=1/n • Wahrscheinlichkeit, dass genau k
Elemente in Bucket i fallen ist “Binomialverteilung”
88
![Page 89: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/89.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Analyse
• Erwartungswert
• Varianz
• Sortieraufwand, z.B. Insertion-Sort
89
![Page 90: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/90.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Analyse
• Erwarteter Sortieraufwand für Bucket i
90
![Page 91: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/91.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Analyse
• Erwarteter Sortieraufwand für Bucket i
91
![Page 92: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/92.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Analyse
• Erwarteter Sortieraufwand für alle Buckets:
92
![Page 93: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/93.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Bucket-Sort: Analyse
• BucketSort(A[1..n]) new B[0..n−1] for i ← 1 to n do push(B[⎣n×A[ i ]⎦], A[ i ]) for i ← 0 to n−1 do sort(B[ i ]) c ← 1 for i ← 0 to n−1 do for j ← 1 to size(B[ i ]) do A[c] ← B[ i ][ j ] c ← c+1
93
O(n)
O(n)
O(n) erwartet
O(n) (!)
O(n) erwartet
![Page 94: 2.3.1 Einleitung 2.3.2 Einfache Sortierverfahren 2.3.3 ...€¦ · Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael](https://reader034.fdocuments.net/reader034/viewer/2022042209/5eadaee27ae4620d805a8d66/html5/thumbnails/94.jpg)
Datenstrukturen und Algorithmen Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Spezielle Sortierverfahren
• Counting-Sort: O(n+k) • Radix-Sort: O(d×(n+k)) • Bucket-Sort: O(n) erwartet
94