7. Parallele Algorithmen für FPGA-Implementierungen

Größe: px
Ab Seite anzeigen:

Download "7. Parallele Algorithmen für FPGA-Implementierungen"

Transkript

1 7. Parallele Algorithmen für FPGA-Implementierungen

2 Odd-Even-Transposition-Sort für 8 Elemente

3 Ein sinnvolles Werkzeug bei der Entwicklung und dem Beweis von Sortierverfahren ist das 0-1-Pinzip. 0-1-Prinzip (Knuth, 1973) Ein Sortiernetz sortiert genau dann eine Folge beliebiger Daten, wenn es alle Folgen von Nullen und Einsen sortiert.

4 Beweis: Sei S ein Sortiernetz, das alle Folgen von Nullen und Einsen sortiert, aber eine Folge x 0, x 1,...,x N-1 nicht sortiert. Der zu S gehörende Algorithmus werde mit A S bezeichnet. Sei π die Permutation, die die sortierte Folge repräsentiert (x π(0) x π(1) x π(2)... x π(n-1) und sei σ die Permutation, die A S produziert. x σ(0), x σ(1), x σ(2)..., x σ(n-1). Sei k der kleinste Index, für den x π(k) x σ(k). Also x π(i) = x σ(i) für alle i<k und x π(k) < x σ(k). Also gibt es ein r > k mit x π(k) = x σ(r). Wir definieren eine Folge x* i aus Nullen und Einsen: x* i = 0, falls x i x π(k) und x* i = 1, falls x i > x π(k) Was macht A S mit der Folge x* i, 0 i N-1? Es gilt: x i > x j => x* i x* j für alle i und j. Daher macht A S in (x* i ) genau dann eine Vertauschung, wenn er eine in (x i ) macht. Daher ist die Ausgabe die Folge x* σ(0), x* σ(1), x* σ(2)..., x* σ(n) = x σ(0), x σ(1), x σ(2),..., x σ(k-1), x σ(k),..., x σ(r),..., x σ(n). Aber x σ(k) ist 1 während x σ(r) 0 ist. Die Ergebnisfolge ist also nicht sortiert, d.h. die Annahme einer Folge (x i ) wie oben war falsch.

5 Das 0-1-Pinzip ist nützlich zum Beweis von Sortierverfahren. 1. Anstelle der möglichen n! Eingangskombinationen muß man nur 2 n überprüfen. 2. Durch Darstellung der Nullen in Weiß und der Einsen in Schwarz lassen sich Sortierverfahren einfach graphisch beweisen.

6 Merge Verfahren Als wir über Sortieren gesprochen haben, ist das Verfahren Merge-Sort als ein Verfahren genannt worden, dessen (Zeit-) Komplexität optimal ist. Und zwar im Gegensatz zu Quicksort benötigt Merge-Sort im Durchschnittsfall und im schlechtesten Fall O(n*log n) Schritte. Wir wollen uns jetzt das Verhalten der uns mittlerweile bekannten Parallelrechnermodelle am Beispiel des Verschmelzen (Merge) zweier sortierter Listen ansehen. Merge auf einem shared memory Parallelrechner Wir wollen eine Parallelrechner mit n Prozessoren verwenden, um zwei sortierte Listen der Länge n/2 zu einer sortierten Liste der Länge n zu verschmelzen. Der Gedanke des Algorithmus besteht darin, daß jeder Prozessor für ein Datum verantwortlich ist, und für dieses die Zielposition in der sortierten Liste berechnet. Dazu macht er eine binäre Suche in der jeweils anderen Liste, wodurch er die Anzahl der kleineren Elemente in der anderen Liste kennt. Andererseits kennt er auch aus der originalen Position seines Datums in der eigenen Liste die Anzahl der kleineren Elemente aus der eigenen Liste. Die Summe ist also die Gesamtanzahl der kleineren Elemente und damit die Zielposition.

7 Algorithmus MERGE_Parallel Eingabe: Zwei sortierte Listen A[0.. n/2-1] und A[n/2.. N-1] im globalen Speicher. Ausgabe: Eine sortierte Liste B[0.. N-1] mit den Elementen von A im globalen Speicher. Methode: Global A[0..n-1], B[0..n-1]; Local x, low, high, index; for_all P i, where 0 i n-1 pardo if i < n/2 then low:=n/2; high:=n-1 else low:=0; high:=n/2-1 endif; x := A[i]; {jeder Prozessor holt sich sein A[i]} repeat index := (low+high)/2 ; if x A[index] then high:= index-1 else low:= index+1 endif; until low > high; { jetzt schreibt jeder Prozessor den Wert an die Stelle, an die er gehört } B[high+i-n/2+1] := x endfor_all;

8 Beispiel: n = A = 1, 3, 7, 11, 12, 14, 15, 22, 4, 5, 6,10, 13, 16, 18, 21 P 0 : low = 8 high = B[ ] = B[0] := 1 index= x = 1 P 6 : low = high = B[ ] = B[11] := 15 index= x = 15 P 11 : low = high = 7 2 B[ ] = B[6] := 10 index= x = 10

9 Komplexität: Jeder Prozessor macht zunächst eine Operation konstanter Länge und läuft dann durch die repeat-schleife. Mit jedem Durchlauf wird der Suchraum halbiert, also sind es insgesamt log n Durchläufe. Die Zuweisung an B ist wieder konstant. Dabei ist zu beachten, daß jeder Prozessor auf eine andere Speicherstelle im gemeinsamen Speicher zugreift. Wenn in den Listen mehrmals derselbe Wert vorkommt, muß man beim Vergleich eine Vereinbarung treffen, z.b. der Wert der linken Liste wird als kleiner gewertet als derjenige der rechten Liste. Also Gesamtkomplexität: O(log n)

10 Bitonisches Mergen Das Sortierverfahren Bitonic Sort (Batcher, 1968) [Ba, Kn, CLR] ist eines der schnellsten Sortiernetze. Bei einem Sortiernetz ist die Reihenfolge der Vergleiche nicht von den Daten abhängig, anders als bei Sortierverfahren wie z.b. Quicksort oder Heapsort. Das Verfahren ist daher besonders für eine Implementierung in Hardware geeignet. Es ist darüber hinaus Grundlage vieler paralleler Sortierverfahren auf zweidimensionalen Gittern [TK, LSSS, SS]. Im folgenden wird das Sortiernetz Bitonic Sort auf Basis des 0-1-Prinzips entwickelt. Grundlagen Def.: Eine 0-1-Folge a = a 0,..., a n-1 heißt bitonisch, wenn sie höchstens zwei Wechsel zwischen 0 und 1 enthält, d.h. wenn Indexpositionen k, m {0,1,..., n-1} existieren mit a 0,..., a k-1 = 0, a k,..., a m-1 = 1, a m,..., a n-1 = 0 oder a 0,..., a k-1 = 1, a k,..., a m-1 = 0, a m,..., a n-1 = 1

11 Im folgenden Bild sind verschiedene Beispiele bitonischer 0-1-Folgen schematisch dargestellt (Nullen weiß, Einsen schattiert). 0 k-1 k m-1 m n-1 0 k-1 k m-1 m n-1 0=k m-1 m n-1 0=k m-1 m n-1 0=k n-1, m=n 0=k n-1, m=n

12 Def.: Sei n N, n gerade. Das Vergleichernetz B n ist wie folgt definiert: B n = [0 : n/2] [1 : n/2+1]... [n/2-1 : n-1] Beispiel: Vergleichernetz B 8 :

13 Satz: Sei n N, n gerade und a = a 0,..., a n-1 eine bitonische Folge. Die Anwendung des Vergleichernetzes B n auf a ergibt dann B n (a) = b 0,..., b n/2-1 c 0,..., c n/2-1 wobei die b i die kleineren Elemente und die c j die größeren Elemente sind, d.h. b i c j für alle i, j {0,..., n/2-1} und darüber hinaus gilt b 0,..., b n/2-1 ist bitonische Folge und c 0,..., c n/2-1 ist bitonische Folge. Beweis: Sei a 0,..., a n-1 eine bitonische 0-1-Folge. Schreibt man a in zwei Zeilen, dann ergibt sich folgendes Bild (Nullen sind wieder weiß, Einsen schattiert dargestellt): 0 n/2-1 n/2 n-1

14 Die Folge beginnt mit Nullen, dann kommen Einsen und dann wieder Nullen. Oder die Folge beginnt mit Einsen, dann kommen Nullen und dann wieder Einsen, wobei sich die Bereiche der Einsen auch überlappen können: a b c Ausganssituation Anwendung des Endsituation Vergleichernetzes Es sind noch eine ganze Reihe anderer Variationen möglich, einige sind im Bild unten dargestellt. Eine Anwendung des Vergleichernetzes B n entspricht einem Vergleich zwischen oberer und unterer Zeile; hierdurch wird in allen Fällen die im Satz angegebene Form hergestellt, d.h. alle b i sind kleiner oder gleich allen c j und b ist bitonisch und c ist bitonisch:

15 a b c a b c a b c

16 Sortieren Beginnen wir wieder mit der PRAM. Wie können wir unser Merge-Verfahren nutzen, um zu sortieren? Iterativ: for i:=1 to log n do for_all subsequences S of length 2 i pardo sort S by merging two sorted halfs Komplexität: T sort (n) = T sort (n/2) + T merge (n) T sort (1) = 0 T merge (n) = c * (log n) Dieses Gleichungssystem hat die Lösung: T sort (n) = c * (log n) + c * (log n/2) + c * (log n/4) c * = c * ( (log n) + (log n - 1) + (log n - 2) ) = c * (log n) * (log n +1)/2 = O (log 2 n)

17 Geht das auch schneller? Ja. Idee: Man benutzt n 2 Prozessoren, um n Daten zu sortieren. Seien die zu sortierenden Daten im Feld A[0..n-1]. B[0..n-1] soll durch den Algorithmus die sortierte Folge bekommen. Wir stellen uns die Prozessoren in einer nxn-matrix angeordnet vor. Alle Prozessoren in der i-ten Zeile bekommen das Element a i. Alle Prozessoren in der j-ten Spalte bekommen das Element a j. Nun vergleicht jeder Prozessor sein a i mit seinem a j. Wenn a i größer ist als a j, setzt er einen Wert g auf 1, sonst auf 0. In der i-ten Zeile ist jetzt a i mit allen anderen Werten verglichen worden. Und in den g-werten der i-ten Zeile stehen soviele Einsen, wie es kleinere Elemente als a i gibt. Nun werden diese g-werte addiert und die Summe wird im Prozessor (i,0) gesammelt. Sei die Summe s i. Schließlich schreibt Prozessor (i,0) den Wert a i nach B[s i ]. Das Feld B ist sortiert. Komplexität: Das Verteilen der Elemente in den Zeilen und Spalten kostet für eine CREW PRAM Zeit O(1). Wir haben überigens in einer Übungsaufgabe gezeigt, wie es mit einer EREW PRAM in O(log n) geht. Das Vergleichen im Prozessor braucht ebenfalls O(1) Zeit. Das Addieren der g-werte in den Zeilen dauert O(log n). Das Wegschreiben der Ergebnisse braucht wieder konstante Zeit O(1). Gesamtaufwand: O(log n)

18 Sortieren auf dem Mesh: Zunächst geht natürlich wieder derselbe Trick wie beim Übergang vom Mergen zum Sortieren auf der PRAM. Wir beginnen, eine Spalte des Mesh zu sortieren. Mit unserem Merge-Algorithmus machen wir aus zwei sortierten Spalten eine sortierte Doppelspalte. Zwei davon Mergen wir zu einem sortierten Block aus vier Spalten usw. bis wir schließlich zwei sortierte Hälften des Mesh zu einem ganzen sortierten Mesh mergen. Die Komplexität hierfür ist offenbar O(log n * n).

19 Komplexitätsrekurrenz: T sort (n,k) = T sort (n, k/2) + T merge (n,k) T merge (n,k) = n + 2k T sort (n,1) = n Für ein Feld der Kantenlänge n ergibt sich: T sort (n,n) = T sort (n, n/2) + T merge (n,n) = T sort (n, n/2) + (n+2n) = T sort (n, n/4) +(n+2n) + (n+2n/2) = T sort (n, n/8) +(n+2n) +(n+2n/2) +(n+2n/4) =... = T sort (n, 1) +(n+2n) +(n+2n/2) +(n+2n/4)+ +(n+2n/(n/2)) n + n*logn + 4n = n*logn +5n Die Komplexität für ein Feld der Kantenlänge n ist also O(log n * n).

20 Dieselbe Komplexität wird mit einem einfacheren Verfahren erreicht, daß den Satz von Batcher ausnutzt: Shear-Sort. Algorithmus Shear-Sort for i := 0 to log n - 1 do begin sort_rows_alternating; sort_columns end sort_rows Die Komplexität hierfür ist offenbar O(log n * n). Warum ist das ein Sortierverfahren? In jedem Durchlauf der Schleife wird die Anzahl der schmutzigen Zeilen halbiert, denn zwei aufeinanderfolgende Zeilen, eine nach rechts und eine nach links sortiert, bilden eine bitonische Folge. Durch das Sortieren der Spalten wird dabei eine Hälfte sauber, d.h. besteht nur aus 0en oder 1en. Nach log n Durchläufen ist also nur noch eine schmutzige Zeile vorhanden; diese wird im letzten Schritt sortiert.

21 Beispiel Shear-sort: Zeilen Spalten sortieren: sortieren: Zeilen Spalten sortieren: sortieren: Zeilen sortieren:

22 Geht das auch schneller? Ja. Idee: Man führt das Merge-Verfahren zwei-dimensional aus, d.h. man merged in einem Schritt vier Teilfelder der Größe n/2 x n/2 zu einem Feld der Größe n x n. Algorithmus Merge_neu: sort_rows_alternating; sort_columns; sort_rows_alternating; sort_columns; sort_rows Jeder dieser Schritte kann mit Odd-even-transposition-sort in n Schritten ausgeführt werden. Auf der folgenden Folie sieht man die Wirkung dieses Algorithmus an einem mit 0en und 1en besetzten Feld.

23

24 Komplexität des Sortierens: Für einen Merge Schritt (vier Felder der Größe k x k zu einem Feld der Größe 2k x 2k) benötigt man c * 2k Schritte. Die Felder der Größe 1 x 1 sind per se sortiert. Also gilt: T sort ( n) = T sort (( n)/2) + T merge ( n) T merge ( n) = c * n T sort (1) = 0 Dieses Gleichungssystem hat die Lösung T sort ( n) = T merge ( n) + T merge (( n)/2) + T merge (( n)/4) T merge (2) + 0 = c * n + c * ( n)/2 + c * ( n)/ c * 1 = c * (2 n - 1) = O( n)

25 Sortieren auf dem Hypercube: Sortiernetz Bitonic Sort Was brauchen wir, um aus dem Bitonic Merge ein Sortiernetz zu machen? Wir müssen nur dafür sorgen, daß unsere Eingangsfolge zu einer bitonischen Folge umsortiert wird. Nun sind insbesondere solche Folgen bitonisch, die aus zwei gegenläufig sortierten Hälften bestehen. D. h. wir können aus der Ursprungsfolge eine bitonische Folge machen, indem wir die erste Hälfte aufsteigend und die zweite Hälfte absteigend sortieren. Sort (n/2) (aufsteigend) Sort (n/2) (absteigend) Merge (n) Merge (n/2) Merge (n/2) Merge (n/4) Merge (n/4) Merge (n/4) Merge (n/4) Merge (2) Merge (2) Merge (2) Merge (2) Bitonic Sort für n Elemente

26 Das Sortiernetz Bitonic Sort ist rekursiv aus Vergleichernetzen B k für verschiedene Zweierpotenzen k aufgebaut. Dazu nimmt man in obiger Darstellung zum Sortieren der Folgen der Länge n/2 wieder ein bitonic-sort-netz. Man beginnt also mit allen Folgen der Länge 1. Diese sind per se sortiert. Je zwei solche Folgen bilden eine bitonische Folge der Länge 2. Diese wird durch einen Vergleich zu einer sortierten Folge der Länge zwei zusammengefaßt. Dabei wird jeweils die erste, dritte, fünfte,... aufsteigend, die zweite, vierte, sechste,... absteigend sortiert. Somit hat man lauter bitonische Folgen der Länge vier erzeugt. Durch ein bitonic-merge-netz werden diese sortiert. Wieder geht man so vor, daß die erste, dritte, fünfte,... Folge aufsteigend, die zweite, vierte, sechste,... absteigend sortiert werden. Auf diese Weise fährt man fort, bis man zwei gegenläufig sortierte Folgen der Länge n/2 hat. Diese bilden eine bitonische Folge der Länge n, die mit einem bitonic-merge- Netz sortiert wird. Die folgende Folie zeigt ein bitonic-sort-netz für n=8.

27 Bitonischer Sortierer für 8 Elemente

28 Komplexität Um aus zwei (gegenläufig) sortierten Folgen der Länge n/2 eine sortierte Folge der Länge n herzustellen, sind log(n) Vergleicherstufen erforderlich (z.b. die 3 = log(8) Vergleicherstufen im Bild oben). Die Anzahl der Vergleicherstufen T(n) des gesamten Sortiernetzes ergibt sich also wie folgt: T(n) = log(n) + T(n/2) Ferner ist jede einelementige Folge natürlich sortiert, somit gilt T(1) = 0 Die Lösung dieses Rekursionsgleichungssystems ist T(n) = log(n) + log(n)-1 + log(n) = log(n) (log(n)+1) / 2 Wir brauchen also O(log 2 n) Vergleicherstufen. Jede Vergleicherstufe des Sortiernetzes besteht aus n/2 Vergleichern; insgesamt sind dies also O(n log 2 (n)) Vergleicher.

5 Sortieren in eindimensionalen Zellularautomaten

5 Sortieren in eindimensionalen Zellularautomaten 5 Sortieren in eindimensionalen Zellularautomaten 5.1 Für alle x A und w A bezeichne im folgenden N x (w) die Anzahl der Vorkommen des Symboles x in dem Wort w. 5.2 Problem. (Eindimensionales Sortieren

Mehr

JAVA - Suchen - Sortieren

JAVA - Suchen - Sortieren Übungen Informatik I JAVA - Suchen - Sortieren http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 Inhalt Suchen/Sortieren binary search mergesort bubblesort Übungen Informatik

Mehr

6. Parallele Algorithmen

6. Parallele Algorithmen 6. Parallele Algorithmen 6.1 Vorbemerkungen Bisher: Instruktionen von Programmen werden durch einen einzigen Prozessor sequentiell ausgeführt. Eine Beschleunigung von Algorithmen ist dabei nur möglich,

Mehr

Algorithmen in Zellularautomaten

Algorithmen in Zellularautomaten Algorithmen in Zellularautomaten 9. Sortieren in zweidimensionalen ZA Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Sommersemester 2017 Ziele Problemstellung: Sortieren von

Mehr

Heapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]

Heapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Heapsort / 1 Heap: Ein Array heißt Heap, falls A [i] A [2i] und A[i] A [2i + 1] (für 2i n bzw. 2i + 1 n) gilt. Beispiel: A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Heapsort / 2 Darstellung eines Heaps als

Mehr

7. Sortieren Lernziele. 7. Sortieren

7. Sortieren Lernziele. 7. Sortieren 7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche

Mehr

1 Sortieren in zweidimensionalen Zellularautomaten

1 Sortieren in zweidimensionalen Zellularautomaten 1 Sortieren in zweidimensionalen Zellularautomaten Der Einfachheit halber beschränken wir uns in diesem Kapitel auf das Sortieren quadratischer Muster. Mit n bezeichnen wir immer die Anzahl zu sortierender

Mehr

Algorithmen in Zellularautomaten

Algorithmen in Zellularautomaten Algorithmen in Zellularautomaten 1. Grundlegende Definitionen 2. Berechnungsmächtigkeit von ZA 3. Endliche Muster und Konfigurationen 4. Selbstreproduktion 5. Sortieren in eindimensionalen ZA 6. Einfache

Mehr

2.2 Allgemeine (vergleichsbasierte) Sortierverfahren

2.2 Allgemeine (vergleichsbasierte) Sortierverfahren . Allgemeine (vergleichsbasierte) Sortierverfahren Vergleichsbaum: Der Aufbau des Verbleichsbaum ist für jeden Algorithmus und jede Eingabelänge n gleich. Jede Permutation der Eingabe, muss zu einem anderen

Mehr

4. Sortieren 4.1 Vorbemerkungen

4. Sortieren 4.1 Vorbemerkungen . Seite 1/21 4. Sortieren 4.1 Vorbemerkungen allgemeines Sortierproblem spezielle Sortierprobleme Ordne a 1,..., a n so um, dass Elemente in aufsteigender Reihenfolge stehen. Die a i stammen aus vollständig

Mehr

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). 8. Untere Schranken für Sortieren Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). Werden nun gemeinsame Eigenschaften dieser Algorithmen untersuchen. Fassen gemeinsame

Mehr

Wiederholung. Divide & Conquer Strategie

Wiederholung. Divide & Conquer Strategie Wiederholung Divide & Conquer Strategie Binäre Suche O(log n) Rekursives Suchen im linken oder rechten Teilintervall Insertion-Sort O(n 2 ) Rekursives Sortieren von a[1..n-1], a[n] Einfügen von a[n] in

Mehr

Grundlegende Sortieralgorithmen

Grundlegende Sortieralgorithmen Grundlegende Sortieralgorithmen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang http://www.dbs.ifi.lmu.de/lehre/nfinfosw WS 07/08 2 Ziele Grundlegende Sortieralgorithmen auf Reihungen kennen

Mehr

Algorithmen und Datenstrukturen Heapsort

Algorithmen und Datenstrukturen Heapsort Algorithmen und Datenstrukturen 2 5 Heapsort In diesem Kapitel wird Heapsort, ein weiterer Sortieralgorithmus, vorgestellt. Dieser besitzt wie MERGE-SORT eine Laufzeit von O(n log n), sortiert jedoch das

Mehr

Abschnitt 19: Sortierverfahren

Abschnitt 19: Sortierverfahren Abschnitt 19: Sortierverfahren 19. Sortierverfahren 19.1 Allgemeines 19.2 Einfache Sortierverfahren 19.3 Effizientes Sortieren: Quicksort 19.4 Zusammenfassung 19 Sortierverfahren Informatik 2 (SS 07) 758

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Sortierverfahren 1. Schreibtischtest 2. Stabilität 3. Sortierung spezieller Arrays 4. Untere

Mehr

6 Quicksort. die mittlere Laufzeit Θ(n log n) beträgt und. die in der asymptotischen Notation verborgenen Konstanten sehr klein sind.

6 Quicksort. die mittlere Laufzeit Θ(n log n) beträgt und. die in der asymptotischen Notation verborgenen Konstanten sehr klein sind. Algorithmen und Datenstrukturen 132 6 Quicksort In diesem Abschnitt wird Quicksort, ein weiterer Sortieralgorithmus, vorgestellt. Trotz einer eher langsamen Worst-Case Laufzeit von Θ(n 2 ) ist Quicksort

Mehr

14. Sortieren II Heapsort. Heapsort. [Max-]Heap 7. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften

14. Sortieren II Heapsort. Heapsort. [Max-]Heap 7. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften Heapsort, Quicksort, Mergesort 14. Sortieren II 14.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 397 398 Heapsort [Max-]Heap 7 Inspiration von Selectsort: Schnelles Einfügen Binärer Baum

Mehr

Sortieren & Co. KIT Institut für Theoretische Informatik

Sortieren & Co. KIT Institut für Theoretische Informatik Sortieren & Co KIT Institut für Theoretische Informatik 1 Formaler Gegeben: Elementfolge s = e 1,...,e n Gesucht: s = e 1,...,e n mit s ist Permutation von s e e 1 n für eine Totalordnung ` ' KIT Institut

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe

Mehr

Kapitel 2. Weitere Beispiele Effizienter Algorithmen

Kapitel 2. Weitere Beispiele Effizienter Algorithmen Kapitel 2 Weitere Beispiele Effizienter Algorithmen Sequentielle Suche Gegeben: Array a[1..n] Suche in a nach Element x Ohne weitere Zusatzinformationen: Sequentielle Suche a[1] a[2] a[3] Laufzeit: n Schritte

Mehr

8. Sortieren II. 8.1 Heapsort. Heapsort. [Max-]Heap 6. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften

8. Sortieren II. 8.1 Heapsort. Heapsort. [Max-]Heap 6. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften Heapsort, Quicksort, Mergesort 8. Sortieren II 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 9 210 Heapsort [Max-]Heap 6 Inspiration von Selectsort: Schnelles Einfügen Binärer Baum mit

Mehr

Heapsort, Quicksort, Mergesort. 8. Sortieren II

Heapsort, Quicksort, Mergesort. 8. Sortieren II 209 Heapsort, Quicksort, Mergesort 8. Sortieren II 210 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 211 Heapsort Inspiration von Selectsort: Schnelles Einfügen Inspiration von Insertionsort:

Mehr

Konvexe Hülle. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links), konvexe Menge (rechts) KIT Institut für Theoretische Informatik 510

Konvexe Hülle. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links), konvexe Menge (rechts) KIT Institut für Theoretische Informatik 510 Konvexe Hülle Definition konvexe Menge: Für je zwei beliebige Punkte, die zur Menge gehören, liegt auch stets deren Verbindungsstrecke ganz in der Menge. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links),

Mehr

Klausur Paralleles Rechnen (Richtwert 60 min) 10. Dez. 2015

Klausur Paralleles Rechnen (Richtwert 60 min) 10. Dez. 2015 Klausur Paralleles Rechnen (Richtwert 60 min) 10. Dez. 2015 Aufgabe 1: (30 Punkte) 1. Erläutern Sie kurz das PRAM-Modell? Was wird sehr idealistisch, was wird realistischer im Vergleich mit echten Parallelrechnern

Mehr

Informatik II Sortieren

Informatik II Sortieren lausthal Sortieralgorithmen Informatik II Sortieren Preprocessing fürs Suchen sind für kommerzielle Anwendungen häufig die Programmteile, die die meiste Rechenzeit verbrauchen viele raffinierte Methoden

Mehr

Informatik II Sortieren

Informatik II Sortieren lausthal Informatik II Sortieren. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Sortieralgorithmen Preprocessing fürs Suchen sind für kommerzielle Anwendungen häufig die Programmteile, die

Mehr

Parallele Algorithmen

Parallele Algorithmen Parallele Algorithmen bereits behandelt: paralleles Sortieren mit Ranksort parallele Matrixmultiplikation nach Gentleman numerisches Iterationsverfahren nach Jacobi Matrixmultiplikation im Hypercube (DNS-Verfahren)

Mehr

Copyright, Page 1 of 7 Heapsort

Copyright, Page 1 of 7 Heapsort www.mathematik-netz.de Copyright, Page 1 of 7 Heapsort Alle grundlegenden, allgemeinen Sortierverfahren benötigen O(n 2 ) Zeit für das Sortieren von n Schlüsseln. Die kritischen Operationen, d.h. die Auswahl

Mehr

Lemma 185 Mit den zusätzlichen Festlegungen

Lemma 185 Mit den zusätzlichen Festlegungen 4.7.2 Stirling-Zahlen der ersten Art Lemma 185 Mit den zusätzlichen Festlegungen und gilt: s 0,0 = 1 s n,k = 0 k 0, n > 0 s n,k = s n 1,k 1 + (n 1) s n 1,k n, k > 0. Diskrete Strukturen 4.7 Abzählkoeffizienten

Mehr

Heapsort, Quicksort, Mergesort. 8. Sortieren II

Heapsort, Quicksort, Mergesort. 8. Sortieren II 209 Heapsort, Quicksort, Mergesort 8. Sortieren II 210 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] Heapsort 211 Inspiration von Selectsort: Schnelles Einfügen Inspiration von Insertionsort:

Mehr

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. 8. A & D - Heapsort Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. Genauer werden wir immer wieder benötigte Operationen durch Datenstrukturen unterstützen.

Mehr

Elementare Sortierverfahren

Elementare Sortierverfahren Algorithmen und Datenstrukturen I Elementare Sortierverfahren Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 18.03.2018 18:16 Inhaltsverzeichnis Sortieren.......................................

Mehr

in eine Folge ai, so daß bezgl. einer Ordnung gilt: a a, j < n

in eine Folge ai, so daß bezgl. einer Ordnung gilt: a a, j < n 6. Sortieren Umordnen von Objekten a in eine Folge ai,..., ai n, so daß bezgl. einer Ordnung gilt: a a, j < n Begriffe: ij i j + ) Stabilität : Ein Sortierverfahren heißt stabil, falls die relative Reihenfolge

Mehr

Mergesort. Idee. Die folgende Funktion mergesort sortiert eine Folge a vom unteren Index lo bis zum oberen Index hi.

Mergesort. Idee. Die folgende Funktion mergesort sortiert eine Folge a vom unteren Index lo bis zum oberen Index hi. Sortierverfahren Mergesort Das Sortierverfahren Mergesort erzeugt eine sortierte Folge durch Verschmelzen (engl.: to merge) sortierter Teilstücke. Mit einer Zeitkomplexität von (n log(n)) ist das Verfahren

Mehr

p max = 4 T = 8 Work = 28 3 I = Work / T = 3,5 2 Cost = p max * T = 32 U = I / p max = 87,5% 1

p max = 4 T = 8 Work = 28 3 I = Work / T = 3,5 2 Cost = p max * T = 32 U = I / p max = 87,5% 1 Massivparallele Modelle und Architekturen Wintersemester 2010/2011 Lösungsvorschlag 1. Übung 1. Aufgabe: Leistungsbewertung paralleler Systeme Betrachtet werden soll der Odd-Even-Sort-Algorithmus mit n

Mehr

Komplexität von Algorithmen:

Komplexität von Algorithmen: Komplexität von Algorithmen: Ansatz: Beschreiben/erfassen der Komplexität über eine Funktion, zur Abschätzung des Rechenaufwandes abhängig von der Größe der Eingabe n Uns interessiert: (1) Wie sieht eine

Mehr

Übersicht. Datenstrukturen und Algorithmen. Divide-and-Conquer. Übersicht. Vorlesung 9: Quicksort (K7)

Übersicht. Datenstrukturen und Algorithmen. Divide-and-Conquer. Übersicht. Vorlesung 9: Quicksort (K7) Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Algorithmus Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-5/dsal/ 2 7.

Mehr

Prof. Dr. Margarita Esponda

Prof. Dr. Margarita Esponda Analyse von Algorithmen Die O-Notation WS 2012/2013 Prof. Dr. Margarita Esponda Freie Universität Berlin 1 Korrekte und effiziente Lösung von Problemen Problem Wesentlicher Teil der Lösung eines Problems.

Mehr

Tutoraufgabe 1 (Sortieralgorithmus):

Tutoraufgabe 1 (Sortieralgorithmus): Prof. aa Dr. Ir. Joost-Pieter Katoen Datenstrukturen und Algorithmen SS Tutoriumslösung - Übung 4 (Abgabe 2..2) Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Sortieralgorithmus):

Mehr

Stabiles Sortieren. Dieses Prinzip lässt sich natürlich auf beliebiege andere Zahlensystem oder auch komplett anders gestaltete Mengen übertragen.

Stabiles Sortieren. Dieses Prinzip lässt sich natürlich auf beliebiege andere Zahlensystem oder auch komplett anders gestaltete Mengen übertragen. Prof. Thomas Richter 3. Mai 2017 Institut für Analysis und Numerik Otto-von-Guericke-Universität Magdeburg thomas.richter@ovgu.de Material zur Vorlesung Algorithmische Mathematik II am 27.04.2017 Stabiles

Mehr

Prof. Dr. Margarita Esponda

Prof. Dr. Margarita Esponda Algorithmen und Programmieren II Sortieralgorithmen imperativ Teil I Prof. Dr. Margarita Esponda Freie Universität Berlin Sortieralgorithmen Bubble-Sort Insert-Sort Selection-Sort Vergleichsalgorithmen

Mehr

Kap. 3: Sortieren. Überblick. Unser Sortierproblem. Motivation. Laufzeitmessung. Warum soll ich hier bleiben? Sortierverfahren sind WICHTIG!!!

Kap. 3: Sortieren. Überblick. Unser Sortierproblem. Motivation. Laufzeitmessung. Warum soll ich hier bleiben? Sortierverfahren sind WICHTIG!!! Kap. 3: Sortieren Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund Überblick Einführung in das Sortierproblem Insertion-Sort Selection-Sort Merge-Sort 4. VO

Mehr

Kap. 3: Sortieren (3)

Kap. 3: Sortieren (3) Kap. 3: Sortieren (3) Professor Dr. Lehrstuhl für Algorithm Engineering, LS Fakultät für Informatik, TU Dortmund 6. VO DAP2 SS 2009 30. April 2009 Überblick Quick-Sort Analyse von Quick-Sort Quick-Sort

Mehr

Übung Algorithmen I

Übung Algorithmen I Übung Algorithmen I 20.5.15 Christoph Striecks Christoph.Striecks@kit.edu (Mit Folien von Julian Arz, Timo Bingmann und Sebastian Schlag.) Roadmap Organisation Mergesort, Quicksort Dual Pivot Quicksort

Mehr

Kap. 3: Sortieren. 4. VO DAP2 SS April 2009

Kap. 3: Sortieren. 4. VO DAP2 SS April 2009 Kap. 3: Sortieren Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 4. VO DAP2 SS 2009 23. April 2009 1 Überblick Einführung in das Sortierproblem Insertion-Sort

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Vorstellen des vierten Übungsblatts 2. Vorbereitende Aufgaben für das vierte Übungsblatt

Mehr

Grundlegende Sortieralgorithmen

Grundlegende Sortieralgorithmen Grundlegende Sortieralgorithmen Martin Wirsing in Zusammenarbeit mit Michael Barth, Philipp Meier und Gefei Zhang 01/05 2 Ziele Grundlegende Sortieralgorithmen auf Reihungen kennen lernen 3 Klassifizierung

Mehr

Der folgende Vortrag basiert auf dem Text A Polynomial Time Algorithm for the N-Queens Problem von Rok Sosic und Jun Gu aus dem Jahre 1990.

Der folgende Vortrag basiert auf dem Text A Polynomial Time Algorithm for the N-Queens Problem von Rok Sosic und Jun Gu aus dem Jahre 1990. Ein polynomieller Algorithmus für das N-Damen Problem 1 Einführung Der folgende Vortrag basiert auf dem Text A Polynomial Time Algorithm for the N-Queens Problem von Rok Sosic und Jun Gu aus dem Jahre

Mehr

Informatik II, SS 2018

Informatik II, SS 2018 Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 4 (30.4.2018) Sortieren IV Algorithmen und Komplexität Analyse Merge Sort Laufzeit T(n) setzt sich zusammen aus: Divide und Merge: O n

Mehr

Algorithmen & Komplexität

Algorithmen & Komplexität Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Breitensuche, Tiefensuche Wir besprechen nun zwei grundlegende Verfahren, alle Knoten eines Graphen zu

Mehr

Algorithmen und Datenstrukturen SS09. Foliensatz 15. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik

Algorithmen und Datenstrukturen SS09. Foliensatz 15. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik Foliensatz 15 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 2009 TU Ilmenau Seite 1 / 16 Untere Schranken für das Vergleichsbasierte Sortieren TU

Mehr

Algorithmen & Komplexität

Algorithmen & Komplexität Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Breitensuche, Tiefensuche Wir besprechen nun zwei grundlegende Verfahren, alle Knoten eines Graphen zu

Mehr

3.2. Divide-and-Conquer-Methoden

3.2. Divide-and-Conquer-Methoden LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE 3.2. Divide-and-Conquer-Methoden Divide-and-Conquer-Methoden Einfache Sortieralgorithmen reduzieren die Größe des noch

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 017/18 8. Vorlesung Sortieren mit dem Würfel! Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I - 5 Guten Morgen! Tipps für unseren ersten Test am Do,

Mehr

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 ETH Zürich Institut für Theoretische Informatik Prof. Dr. Angelika Steger Florian Meier, Ralph Keusch HS 2017 Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 Lösungsvorschlag zu Aufgabe 1

Mehr

Suchen und Sortieren

Suchen und Sortieren Suchen und Sortieren Suchen Sortieren Mischen Zeitmessungen Bewertung von Sortier-Verfahren Seite 1 Suchverfahren Begriffe Suchen = Bestimmen der Position (Adresse) eines Wertes in einer Datenfolge Sequentielles

Mehr

Programmiertechnik II

Programmiertechnik II Sortieren: Einfache Algorithmen Sortieren Abstrakte Operation geg: Menge von items (Elemente) jedes Element besitzt Sortierschlüssel Schlüssel unterliegen einer Ordnung eventuell sind doppelte Schlüssel

Mehr

Präfix-Summe. Das Schweizer Offiziersmesser der Parallelen Algorithmen. Parallele Rechenmodelle Präfix-Summe Brents Lemma Anwendungen

Präfix-Summe. Das Schweizer Offiziersmesser der Parallelen Algorithmen. Parallele Rechenmodelle Präfix-Summe Brents Lemma Anwendungen Präfix-Summe Das Schweizer Offiziersmesser der Parallelen Algorithmen Parallele Rechenmodelle Präfix-Summe Brents Lemma Anwendungen Parallele Rechenmodelle Beispiel: Summieren von Zahlen Verlauf des Rechenprozesses:

Mehr

p max = 4 T = 8 Work = 28 3 I = Work / T = 3,5 2 Cost = p max * T = 32 U = I / p max = 87,5% 1

p max = 4 T = 8 Work = 28 3 I = Work / T = 3,5 2 Cost = p max * T = 32 U = I / p max = 87,5% 1 Massivparallele Modelle und Architekturen Wintersemester 13/14 Lösungsvorschlag 1. Übung 1. Aufgabe: Leistungsbewertung paralleler Systeme Betrachtet werden soll der Odd-Even-Sort-Algorithmus mit n Eingangswerten

Mehr

Randomisierte Algorithmen

Randomisierte Algorithmen Randomisierte Algorithmen Kapitel 1 Markus Lohrey Universität Leipzig http://www.informatik.uni-leipzig.de/~lohrey/rand WS 2005/2006 Markus Lohrey (Universität Leipzig) Randomisierte Algorithmen WS 2005/2006

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010

Mehr

Aufgabe (Schreibtischtest, lexikographische Ordnung)

Aufgabe (Schreibtischtest, lexikographische Ordnung) Aufgabe (Schreibtischtest, lexikographische Ordnung) Führen Sie einen Schreibtischtest für den Algorithmus Bubblesort aus der VL für die folgenden Eingabe-Arrays durch. Geben Sie das Array S nach jedem

Mehr

Untere Schranke für allgemeine Sortierverfahren

Untere Schranke für allgemeine Sortierverfahren Untere Schranke für allgemeine Sortierverfahren Prinzipielle Frage: wie schnell kann ein Algorithmus (im worst case) überhaupt sein? Satz: Zum einer Folge von n Keys mit einem allgemeinen Sortierverfahren

Mehr

Einführung in die Programmierung I. 6. Sortieren. Stefan Zimmer

Einführung in die Programmierung I. 6. Sortieren. Stefan Zimmer Einführung in die Programmierung I 6. Sortieren Stefan Zimmer 26.11.2007 2 Sortieren Gegeben seien n Dinge ai, 1 i n, und eine Vergleichsoperation (z.b. Zahlen und

Mehr

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 9. Sortieren

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 9. Sortieren UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 9 Sortieren Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger Straße 69, A-4040 Linz Sortieren :: Problemstellung

Mehr

> Parallele Systeme Übung: 4. Übungsblatt Philipp Kegel Wintersemester 2012/2013. Parallele und Verteilte Systeme, Institut für Informatik

> Parallele Systeme Übung: 4. Übungsblatt Philipp Kegel Wintersemester 2012/2013. Parallele und Verteilte Systeme, Institut für Informatik > Parallele Systeme Übung: 4. Übungsblatt Philipp Kegel Wintersemester 2012/2013 Parallele und Verteilte Systeme, Institut für Informatik Inhaltsverzeichnis 2 1 Besprechung des 4. Übungsblattes Aufgabe

Mehr

1. Teilklausur. Name:... Vorname:... Matrikel-Nummer:...

1. Teilklausur. Name:... Vorname:... Matrikel-Nummer:... ALP II Objektorientierte Programmierung SS 2012 Prof. Dr. Margarita Esponda 1. Teilklausur Name:... Vorname:... Matrikel-Nummer:... Ich bin mit der Veröffentlichung der Klausurergebnisse mit Matrikel-Nummer

Mehr

5. Übungsblatt zu Algorithmen I im SoSe 2016

5. Übungsblatt zu Algorithmen I im SoSe 2016 Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Dennis Hofheinz Lukas Barth, Lisa Kohl 5. Übungsblatt zu Algorithmen I im SoSe 2016 https://crypto.iti.kit.edu/index.php?id=algo-sose16

Mehr

Formaler. Gegeben: Elementfolge s = e 1,...,e n. s ist Permutation von s e 1 e n für eine lineare Ordnung ` '

Formaler. Gegeben: Elementfolge s = e 1,...,e n. s ist Permutation von s e 1 e n für eine lineare Ordnung ` ' Sortieren & Co 164 165 Formaler Gegeben: Elementfolge s = e 1,...,e n Gesucht: s = e 1,...,e n mit s ist Permutation von s e 1 e n für eine lineare Ordnung ` ' 166 Anwendungsbeispiele Allgemein: Vorverarbeitung

Mehr

3 Elementare Umformung von linearen Gleichungssystemen und Matrizen

3 Elementare Umformung von linearen Gleichungssystemen und Matrizen 3 Elementare Umformung von linearen Gleichungssystemen und Matrizen Beispiel 1: Betrachte das Gleichungssystem x 1 + x 2 + x 3 = 2 2x 1 + 4x 2 + 3x 3 = 1 3x 1 x 2 + 4x 3 = 7 Wir formen das GLS so lange

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Technische Universität München SoSe 2017 Fakultät für Informatik, I-16 Lösungsblatt 4 Dr. Stefanie Demirci 31. Mai 2017 Rüdiger Göbl, Mai Bui Algorithmen und Datenstrukturen Aufgabe 1 Komplexität Berechnung

Mehr

Heapsort. Erstellung eines Heaps

Heapsort. Erstellung eines Heaps Heapsort Beispiel für einen eleganten Algorithmus, der auf einer effizienten Datenstruktur (dem Heap) beruht [Williams, 1964] Daten liegen in einem Array der Länge n vor 1. Erstelle aus dem gegebenen Array

Mehr

Heapsort. 1. Erstelle aus dem gegebenen Array einen Heap (DownHeap) 2. Tausche erstes und letztes Element des Arrays

Heapsort. 1. Erstelle aus dem gegebenen Array einen Heap (DownHeap) 2. Tausche erstes und letztes Element des Arrays Heapsort Beispiel für einen eleganten Algorithmus, der auf einer effizienten Datenstruktur (dem Heap) beruht [Williams, 1964] Daten liegen in einem Array der Länge n vor 1. Erstelle aus dem gegebenen Array

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de 4. Sortierverfahren Elementare Sortierverfahren - Sortieren durch

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Vorrechnen von Aufgabenblatt 1. Wohlgeformte Klammerausdrücke 3. Teile und Herrsche Agenda 1.

Mehr

Heapsort. Dr. Michael Brinkmeier (TU Ilmenau) Algorithmen und Datenstrukturen / 50

Heapsort. Dr. Michael Brinkmeier (TU Ilmenau) Algorithmen und Datenstrukturen / 50 Heapsort Dr. Michael Brinkmeier (TU Ilmenau) Algorithmen und Datenstrukturen 27.6.2007 / 50 Heapsort - Wiederholung Definition Array A[..n] mit Einträgen aus (U,

Mehr

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Übung zu Algorithmen und Datenstrukturen (für ET/IT) Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Fibonacci Zahlen Fibonacci Folge Die Fibonacci

Mehr

5. Bäume und Minimalgerüste

5. Bäume und Minimalgerüste 5. Bäume und Minimalgerüste Charakterisierung von Minimalgerüsten 5. Bäume und Minimalgerüste Definition 5.1. Es ein G = (V, E) ein zusammenhängender Graph. H = (V,E ) heißt Gerüst von G gdw. wenn H ein

Mehr

Die Determinante ist nur für beliebige quadratische Matrizen (n = m) definiert: a 11 a 12 a a 1n a 21 a 22. det. a nn.

Die Determinante ist nur für beliebige quadratische Matrizen (n = m) definiert: a 11 a 12 a a 1n a 21 a 22. det. a nn. Die Determinante ist nur für beliebige quadratische Matrizen (n = m) definiert: Definition 1.2 (Leibniz-Formel) Die Determinante einer n n-matrix ist a 11 a 12 a 13... a 1n a 11 a 12 a 13... a 1n a 21

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen

Mehr

Quicksort ist ein Divide-and-Conquer-Verfahren.

Quicksort ist ein Divide-and-Conquer-Verfahren. . Quicksort Wie bei vielen anderen Sortierverfahren (Bubblesort, Mergesort, usw.) ist auch bei Quicksort die Aufgabe, die Elemente eines Array a[..n] zu sortieren. Quicksort ist ein Divide-and-Conquer-Verfahren.

Mehr

Permutationen und symmetrische Gruppe

Permutationen und symmetrische Gruppe Permutationen und symmetrische Gruppe Für eine beliebige Menge M bilden die Bijektionen von M in M, versehen mit der Komposition von Abbildungen als Operation, eine Gruppe, die sogenannte symmetrische

Mehr

Krawatterätsel - Verbesserung der oberen Schranke

Krawatterätsel - Verbesserung der oberen Schranke Krawatterätsel - Verbesserung der oberen Schranke Felix Kälberer, Matthias Nieser, Ulrich Reitebuch 29. Dezember 2008 Zusammenfassung Die folgenden Seiten beschreiben neue Erkenntnisse im Krawattenrätsel.

Mehr

Mi, 21. Mai, ab 12:30 Uhr, in E23 (OH14) Dann ab 14:30 Uhr: Motivation: Gegeben: hier: später: Aufgabe:

Mi, 21. Mai, ab 12:30 Uhr, in E23 (OH14) Dann ab 14:30 Uhr: Motivation: Gegeben: hier: später: Aufgabe: Kap. 4: Suchen in Datenmengen Professor Dr. Lehrstuhl für Algorithm Engineering, LS Fakultät für Informatik, TU Dortmund 0. VO DAP2 SS 2008 5. Mai 2008 Ankündigung Mentoring Mi, 2. Mai, ab 2:30 Uhr, in

Mehr

Krawattenrätsel - Verbesserung der oberen Schranke

Krawattenrätsel - Verbesserung der oberen Schranke Krawattenrätsel - Verbesserung der oberen Schranke Felix Kälberer, Matthias Nieser, Ulrich Reitebuch 9. Dezember 008 Zusammenfassung Die folgenden Seiten beschreiben neue Erkenntnisse im Krawattenrätsel.

Mehr

Auswählen nach Rang (Selektion)

Auswählen nach Rang (Selektion) Auswählen nach Rang (Selektion) Geg.: Folge X von n Schlüsseln, eine Zahl k mit k n Ges.: ein k-kleinster Schlüssel von X, also den Schlüssel x k für X sortiert als x x 2 L x n trivial lösbar in Zeit O(kn)

Mehr

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g: TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,

Mehr

Kapitel 6 Elementare Sortieralgorithmen

Kapitel 6 Elementare Sortieralgorithmen Kapitel 6 Elementare Sortieralgorithmen Ziel: Kennenlernen elementarer Sortierverfahren und deren Effizienz Zur Erinnerung: Das Sortier-Problem Gegeben: Folge A von n Elementen a 1, a 2,..., a n ; Eine

Mehr

Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen Kapitel 10 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:

Mehr

Kapitel 3: Sortierverfahren Gliederung

Kapitel 3: Sortierverfahren Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Weitere Grundlagen Maike Buchin 20.4.2017 Wiederholung wir interessieren uns für effizienten Algorithmen und Datenstrukturen Laufzeiten messen wir asymptotisch in der Oh-Notation

Mehr

Sortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1

Sortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1 Sortieren durch Einfügen Prof. Dr. W. Kowalk Sortieren durch Einfügen 1 Schon wieder aufräumen Schon wieder Aufräumen, dabei habe ich doch erst neulich man findet alles schneller wieder Bücher auf Regal

Mehr

Grundlegende Sortieralgorithmen

Grundlegende Sortieralgorithmen Grundlegende Sortieralgorithmen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl und Nora Koch Sortieren in Java Man kann Sortierverfahren in einem imperativem oder einem objektorientierten Stil programmieren.

Mehr

Ein sortiertes Feld kann in O(log n) durchsucht werden, z.b. mit Binärsuche. Der Algorithmus 1 gibt den Pseudocode der binären Suche an.

Ein sortiertes Feld kann in O(log n) durchsucht werden, z.b. mit Binärsuche. Der Algorithmus 1 gibt den Pseudocode der binären Suche an. 2.5 Suchen Eine Menge S will nach einem Element durchsucht werden. Die Menge S ist statisch und S = n. S ist Teilmenge eines Universums auf dem eine lineare Ordnung definiert ist und soll so gespeichert

Mehr