7. Parallele Algorithmen für FPGA-Implementierungen
|
|
- Timo Becke
- vor 6 Jahren
- Abrufe
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.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
MehrJAVA - 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
Mehr6. 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,
MehrAlgorithmen 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
MehrHeapsort / 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
Mehr7. 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
Mehr1 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
MehrAlgorithmen 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
Mehr2.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
Mehr4. 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
MehrAlle 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
MehrWiederholung. 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
MehrGrundlegende 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
MehrAlgorithmen 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
MehrAbschnitt 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 Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Sortierverfahren 1. Schreibtischtest 2. Stabilität 3. Sortierung spezieller Arrays 4. Untere
Mehr6 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
Mehr14. 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
MehrSortieren & 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
MehrAlgorithmen 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
MehrKapitel 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
Mehr8. 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
MehrHeapsort, 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:
MehrKonvexe 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),
MehrKlausur 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
MehrInformatik 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
MehrInformatik 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
MehrParallele Algorithmen
Parallele Algorithmen bereits behandelt: paralleles Sortieren mit Ranksort parallele Matrixmultiplikation nach Gentleman numerisches Iterationsverfahren nach Jacobi Matrixmultiplikation im Hypercube (DNS-Verfahren)
MehrCopyright, 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
MehrLemma 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
MehrHeapsort, 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:
Mehr8. 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.
MehrElementare 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.......................................
Mehrin 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
MehrMergesort. 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
Mehrp 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
MehrKomplexitä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)
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.
MehrProf. 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.
MehrTutoraufgabe 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):
MehrStabiles 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
MehrProf. 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
MehrKap. 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
MehrKap. 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 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
MehrKap. 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 Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Vorstellen des vierten Übungsblatts 2. Vorbereitende Aufgaben für das vierte Übungsblatt
MehrGrundlegende 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
MehrDer 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
MehrInformatik 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
MehrAlgorithmen & 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
MehrAlgorithmen 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
MehrAlgorithmen & 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
Mehr3.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
MehrAlgorithmen 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,
MehrAlgorithmen 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
MehrSuchen 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
MehrProgrammiertechnik 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
MehrPrä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:
Mehrp 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
MehrRandomisierte 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
MehrGrundlagen: 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
MehrAufgabe (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
MehrUntere 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
MehrEinfü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
MehrUE 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 Inhaltsverzeichnis 2 1 Besprechung des 4. Übungsblattes Aufgabe
Mehr1. 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
Mehr5. Ü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
MehrFormaler. 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
Mehr3 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
MehrAlgorithmen 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
MehrHeapsort. 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
MehrHeapsort. 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
MehrAlgorithmen 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 Sommersemester 017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Vorrechnen von Aufgabenblatt 1. Wohlgeformte Klammerausdrücke 3. Teile und Herrsche Agenda 1.
MehrHeapsort. 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) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Fibonacci Zahlen Fibonacci Folge Die Fibonacci
Mehr5. 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
MehrDie 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
MehrAlgorithmen 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
MehrQuicksort 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.
MehrPermutationen 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
MehrKrawatterä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.
MehrMi, 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
MehrKrawattenrä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.
MehrAuswä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)
MehrAbgabe: (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,
MehrKapitel 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
MehrKapitel 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:
MehrKapitel 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
MehrVorlesung 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
MehrSortieren 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
MehrGrundlegende 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.
MehrEin 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