Algorithmen und Datenstrukturen 7. Vorlesung
|
|
- Kilian Georg Möller
- vor 5 Jahren
- Abrufe
Transkript
1 Algorithmen und Datenstrukturen 7. Vorlesung Karl-Heinz Niggl 6. Mai 006 Behandelte Sortieralgorithmen insertion-sort(a[..n]) mit worst-case und average-case Laufzeit O(n ) merge-sort(a,p,r) mit worst-case Laufzeit O(n log n), n := r p + die Anzahl der zu sortierenden Elemente heap-sort(a[..n]) mit worst-case Laufzeit O(n log n), basierend auf der Datenstruktur Heap Heute: Datenstruktur Priority Queue (Vorrangswarteschlange) quicksort(a[..n]) mit Laufzeit O(n ) im worst-case, aber O(n log n) im average-case FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD Erinnerung an die Datenstruktur Heap Ein Max-Heap ist ein Array A[..len(A)] mit Einträgen aus einer totalen Ordnung (U, ) und Attribut heap-size(a) =: n, so daß für j =,...,n gilt: oder explizit ausgedrückt: A[parent(j)] A[j] left(i) n = A[i] A[left(i)] right(i) n = A[i] A[right(i)] Dabei: parent(i) := i/ left(i) := i und right(i) := i + Erinnerung an die Datenstruktur Heap Ein Binärbaum T mit Knotenbeschriftungen l(v) aus (U, ) heißt max-heapgeordnet, falls für je zwei Knoten v,v gilt: v ist Vater von v = l(v) l(v ) Ein Binärbaum T der Tiefe d heißt linksvollständig, falls alle Schichten i d vollständig aufgefüllt sind, bis auf eventuell Schicht d; diese ist von links her aufgefüllt. Gesehen: Jeder n-elementige Max-Heap A entspricht genau einem max-heapgeordneten, linksvollständigen Binärbaum T A der Tiefe (Höhe) log n. FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD
2 Erinnerung an die Datenstruktur Heap 3 Bsp. Max-Heap als Binärbaum und als Array Erinnerung an heap-sort Zentralinmax-heapsort ist die Prozedurmax-heapify(A,i). Eingabe: Ein Array A und ein Index i, so daß die zugehörigen (binären) Teilbäume mit Wurzelleft(i) bzw. right(i) maxheapgeordnet sind, aber die Max-Heap-Eigenschaft A[i] A[left(i)],A[right(i)] eventuell verletzt ist. Ausgabe: ArrayA, so daß der zugehörige Teilbaum mit Wurzel i max-heapgeordnet ist. Idee: Vertausche rekursiv A[i] mit Maximum von A[left(i)] und A[right(i)], bis Max-Heap-Eigenschaft erfüllt ist. = worst-case Laufzeit O(log n) FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD Erinnerung an heap-sort Weiterer Baustein: Prozedur build-max-heap(a) Wissen: Die Elemente mit Indizes n/ +, n/ +,...,n sind genau die Blätter des gesuchten n-elementigen Heaps A. Diese bilden die Basis für build-max-heap. Die restlichen Elemente werden mittels max-heapify in A einsortiert. : procedure build-max-heap(a) : heap-size(a) len(a) 3: for i len(a)/ downto do 4: max-heapify(a,i) Laufzeit: O(n) Insgesamt ergibt dies: Erinnerung an heap-sort 3 : procedure max-heapsort(a) : build-max-heap(a) 3: for i len(a) downto do 4: Vertausche A[] mit A[i] 5: heap-size(a) heap-size(a) 6: max-heapify(a,) Laufzeit: O(n log n) Denn: build-max-heap(a) benötigt ZeitO(n) undjederder n Aufrufevonmax-heapify(A,) benötigt Zeit O(log n). FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD
3 Priority Queues Def. Eine Max-Priority Queue (undanalogfürmin-priority Queue) ist eine Datenstruktur zur Verwaltung einer (dynamischen) Menge S, wobeijedem Element x einschlüsselkey(x) aus (U, ) zugeordnet ist (Schlüssel = Priorität), die folgende Operationen unterstützt: insert(s, x) fügt das Element x in S ein. maximum(s) liefert das Element mit größtem Schlüssel. extract-max(s) liefert und entfernt das Element von S mit größtem Schlüssel. increase-key(s, x, k) aktualisiert den Schlüssel von Element x mit k, falls k > key(x). Anwendungen: Priority Queues ) Prozessverwaltung in Multitask-Systemen Jeder Prozess hat einen Namen (eine ID ) und eine Priorität (Zahl in N). Üblich: kleinere Zahlen bedeuten höhere Prioritäten. Aktuellausführbare Prozesse befindensichineiner Queue. Bei Freiwerden eines Prozessors (z.b. durch Unterbrechen eines Prozesses) wird einer der Prozesse mit höchster Priorität aus der Queue entnommen und weitergeführt. FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD Priority Queues 3 ) Discrete Event Simulation System von Aktionen soll auf dem Rechner simuliert werden. Jeder Aktion A ist ein Zeitpunkt t A [0, ) zugeordnet. Die Ausführung eines A kann neue Aktionen A erzeugen oder ausführbar machen, mit neuen Zeitpunkten t A > t A. Ein Schritt: Wähle diejenige noch nicht ausgeführte Aktion mit dem frühesten Ausführungszeitpunkt und führe sie aus. 3) Innerhalb von Algorithmen (Beispiele später). Priority Queues 4 Vereinfachungen: ) Die zugrundeliegende Schlüsselmenge ist N. ) Wiridentifizierendie eigentlichendatenelemente mit ihren Schlüsseln. 3) Behandeln (o.e.) nur Datenstruktur Max-Priority Queue. Diese kannmittels DatenstrukturHeapeffizient implementiert werden: Die Prozedurheap-maximum(A) implementiert die Operation maximum in konstanter Zeit Θ(). : procedure heap-maximum(a) : return A[] FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD
4 Priority Queues 5 Die Prozedur heap-extract-max(a) implementiert die Operation extract-max in Zeit O(log n). : procedure heap-extract-max(a) : if heap-size[a] < then 3: error heap underflow 4: max A[] max buffern 5: A[] A[heap-size[A]] A[] geeignet überschreiben 6: heap-size[a] heap-size[a]] 7: max-heapify(a,) Heap wiederherstellen 8: return max Priority Queues 6 Die Prozedur heap-increase-key(a,i,key) implementiert die Operation heap-increase-key in Zeit O(log n). : procedure heap-increase-key(a,i,key) : if key < A[i] then 3: error key ist kleiner als akt. Schlüssel 4: A[i] key Schlüssel aktualisieren 5: while (i > und A[parent(i)] < A[i]) do 6: Vertausche A[i] mit A[parent(i)] 7: i parent(i) Idee: (für While-Schleife) Durchlaufe den Pfad von Knoten i in Richtung Wurzel, bis Platz für key gefunden ist. FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD Priority Queues 7 Bsp. heap-increase-key(a,9,5) mit T A : Priority Queues 8 Bsp. heap-increase-key(a,9,5) fortgesetzt i 4 i i i 5 8 FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD
5 Priority Queues 9 Die Prozedur max-heap-insert(a,key) implementiert die Operation insert in Zeit O(log n). Idee: Erzeuge zunächst ein neues Heap-Element mit kleinstem Schlüssel ( ). Dazu wird heap-size[a] um eins vergrößert. Mittels heap-increase-key wird damit key richtig eingefügt. : procedure max-heap-insert(a,key) : heap-size[a] heap-size[a]+ 3: A[heap-size[A]] 4: heap-increase-key(a,heap-size[a],key) Quicksort quicksort(a[p..r]) ist ein Divide-and-Conquer Algorithmus. Im folgenden sei (U, ) eine total geordnete Menge. Def. Für eine Teilmenge T U und x U schreiben wir T x (sprich x ist obere Schranke von T) für die Aussage: t T : t x Analog seien T < x und x T (u. Schranke), x < T definiert. Folg (Leere Menge). Es gilt x < x für jedes x U. Ferner identifizieren wir einen Array-Abschnitt A[p..r] mit der Menge {A[p],A[p +],...,A[r]} seiner Elemente. FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD Quicksort quicksort(a[p..r]) (Array über (U, )) arbeitet wie folgt: Divide: Teile (i.a. mit Umarrangieren) A[p..r] in zwei Teilarrays A[p..q ] und A[q+..r] auf, so daß gilt: A[p..q ] A[q] A[q+..r] Die Berechnung von q ist Bestandteil dieses Schrittes; A[q] heißtpivotelement mit Pivotindex q. Conquer: Sortiere nun (in-place) rekursiv mittels quicksort die Teilarrays A[p..q ] und A[q+..r]. Combine: Entfällt, da der resultierende ArrayA[p..r] bereits sortiert ist. Quicksort 3 Die Prozedur quicksort lautet damit wie folgt: : procedure quicksort(a,p,r) : if p < r then 3: q partition(a,p,r) 4: quicksort(a,p,q ) 5: quicksort(a,q+,r) Aus der Korrektheit von partition(a,p,r) folgt dann die Korrektheit von quicksort(a,p,r). DerAufrufquicksort(A,,len(A)) sortiert eineninput-array A[..len(A)]. Frage: Wie lautet partition(a,p,r)? FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD
6 Quicksort 4 Die Prozedur partition(a,p,r) nach N. Lomuto (ursprüngl. Fassung: C. Hoare): Ein in-place Algorithmus zur Berechnung des Pivotelementes : procedure partition(a,p,r) : x A[r] das Pivotelement! 3: i p grüner Bereich 4: for j p to r do 5: if A[j] x then 6: i i+ 7: Vertausche A[i] mit A[j] 8: Vertausche A[i+] mit x 9: return i+ Bsp. Quicksort 5 i p, j r i p, j r p, i j r p, i j r p, i j r FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD Quicksort 6 Quicksort 7 Bsp. fortgesetzt p i j r p i p i j r p i p i j r r r Korrektheit(partition(A,p,r)). Zeige Schleifen-Invariante: Vor Ausführung von Runde j (Schleifenrumpf (5-7) mit Laufindex j) gilt: A[p..i] x=a[r] <A[i+..j ] Beweis. j = p Klar, da x <. j j + Betrachte die zwei Fälle in Runde j: A[j] x Dann wirda[j] mit A[i+] vertauscht. Nach I.V. bzw. Fall-Annahme gilt dann: A[p..i+] = A[p..i]::A[j] x A[i+..j] = A[i+..j ]::A[i+] > x Fertig, da i := i+ in Runde j gesetzt wird. FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD
7 Quicksort 8 A[j] > x Dann bleibt i unverändert, also gilt A[p..i] x nach I.V., und nach I.V. bzw. Fall-Annahme gilt: A[i+..j] = A[i+..j ]::A[j] > x Korrektheit: Nach Runde r, d.h. vor Ausführung von Runde j =r, gilt aufgrund der Schleifen-Invariante: A[p..i] x=a[r] <A[i+..r ] NachVertauschenvonA[i+] mit x=a[r] giltwie gewünscht: A[p..i]::x x <A[i+..r ]::A[i+] Quicksort 9 Laufzeitanalyse: partition(a,p,r) benötigt Zeit Θ(n), wobei n := r p +. Die worst-case Laufzeit T(n) von quicksort hängt stark davon ab, wie balanciert oderunbalanciertdie vonpartition erzeugten Aufteilungen ausfallen. Worst-case Aufteilung: Injedem rek. Aufrufvonpartition bzgl. Problemgröße n entstehen Teilarrays der Größe n und 0. Wegen T(0) = Θ() erhalten wir die Rekursion: T(n) = T(n ) + Θ(n) Hierfür gilt (Übungsaufgabe!): T(n) = Θ(n ) FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD Quicksort 0 Best-case Aufteilung: In jedem rek. Aufruf von partition bzgl. Problemgröße n entstehen Teilarrays der Größe n/ und n/. In diesem Fall erhalten wir die Rekursionsungleichung: T(n) T(n/) + Θ(n) Hierfürergibtdas Master-Theorem eine ungleichviel bessere asymptotische Lösung der Rekursion: T(n) = O(n log n) Fazit: Bei der best-case Aufteilung arbeitet quicksort so schnellwie merge-sort mit wesentlichkleinererkonstante! Quicksort Aufteilungmit konstanter Proportionalität: Jeder rek. Aufruf von partition bzgl. Problemgröße n erzeugt Teilarrays mit konstanter Proportionalität, z.b. eine 9-zu--Aufteilung (sehr unbalanciert!) In diesem Fall erhalten wir die Rekursionsungleichung: T(n) T(9n/0) + T(n/0) + c n Die Rekursionsbaum-Methode ergibt hierfür ebenfalls: T(n) = O(n log n) Fazit: Selbst bei Aufteilung mit konstanter Proportionalität arbeitet quicksort so schnell wie merge-sort. FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD
8 Quicksort Rekursionbaum für konstante 9-zu--Aufteilung: log0 9 n log 0 n 0 n n 9 0 n 00 n 9 00 n 9 00 n 8 00 n n n cn cn cn cn cn cn O(n logn) Bem. Das gleiche Argument ergibt sich für beliebige Aufteilungen konstanter Proportionalität! Quicksort 3 Worst-Case Laufzeit T(n) von quicksort: Wissen nur T(n) T(n ) + T(n ) + c n mit n + n = n für n und c > 0 geeignet. Beh. T(n) d n für ein d > 0 geeignet und n Beweis. Wertverlaufsinduktion. Sei n beliebig. n = Dann gilt T() T(0) + c d, für d geeignet. n > Dann gilt nach I.V. für n,n mit n + n = n : T(n) d (n ) + d (n ) + c n d (n ) + c n (Binomische Formel) d n für T(0) + c d FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD Quicksort 4 Average-CaseLaufzeit T(n) von quicksort(a,p,r), wobei n := r p +. Gleichverteilungsannahme: Alle Permutationen der n Einträge eines Input-Arrays A[p..r] sind gleichwahrscheinlich. Einfachere Analyse: Randomisierung von quicksort: Anstelle stets A[r] als Pivotelementzuwählen, wählenwirzufällig ein Pivotelement aus A[p..r]. Effekt: Die erwartete Aufteilung ist gut balanciert! Im folgenden sei random(a,b) ein Zufallsgenerator, der zufällig eine Zahl m [a,b] erzeugt, d.h. jede dieser Zahlen ist gleichwahrscheinlich. Quicksort 5 : procedure randomized-partition(a,p,r) : i random(p, r) 3: Vertausche A[r] mit A[i] 4: partition(a,p,r) : procedure randomized-quicksort(a,p,r) : if p < r then 3: q randomized-partition(a,p,r) 4: randomized-quicksort(a,p,q ) 5: randomized-quicksort(a,q+,r) Für erwartete Laufzeit von randomized-quicksort: Einschub Wahrscheinlichkeitstheorie FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD
9 Wahrscheinlichkeit: Grundbegriffe Wahrscheinlichkeitstheorie ist ein wesentliches Werkzeug bei der Laufzeitanalyse im average-case oder bei der Analyse von randomisierten Algorithmen. Def. Ein Stichprobenraum ist eine endliche (i.a. abzählbar unendliche) Menge S von Elementarereignissen. Intuition: Ein Elementarereignis ist ein möglicher Ausgang eines Zufallsexperiments. Bsp. Für das Experiment, zwei Münzen zu werfen, gibt es vier mögliche Ausgänge, dargestellt als Strings der Länge über H (head: Kopf) und T (tail: Zahl). = S = {HH,HT,TH,TT} Wahrscheinlichkeit: Grundbegriffe Def. Eine Ereignis ist eine Teilmenge A eines Stichprobenraums S. Bsp. Das Ereignis, beim Werfen zweier Münzen Kopf und Zahl zu erhalten, ist die Menge A = {HT,TH}. Das Ereignis S heißt sicher und heißt Nullereignis. Elementarereignisse s S werden oft mit dem Ereignis {s} identifiziert. Def. Zwei Ereignisse A,B heißen disjunkt, falls A B = gilt. FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD Wahrscheinlichkeit: Grundbegriffe 3 Def. Eine Wahrscheinlichkeitsverteilung auf einem Stichprobenraum S ist eine Abbildung Pr{ }: Ereignisse(S) R, die die folgenden Axiome erfüllt: (P) Pr{A} 0 für alle Ereignisse von S (P) Pr{S} = (P3) Für paarweise disjunkte Ereignisse A,...,A n gilt: Pr{A... A n } = n Pr{A i } Ein solches Paar (Pr{ },S) heißtwahrscheinlichkeitsraum, kurz W-Raum. i= Wahrscheinlichkeit: Grundbegriffe 4 Folg (W-Raum). Sei (Pr{ },S) ein W-Raum und A,B Ereignisse von S. Dann gilt:. Pr{ } = 0. A B = Pr{A} Pr{B} 3. Pr{A} = Pr{A}, wobei A := S\A 4. Pr{A B} = Pr{A} + Pr{B} Pr{A B} (Siebformel) 5. Pr{A} = Pr{s} s A FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD
10 Wahrscheinlichkeit: Grundbegriffe 5 Beweis. Zu ). P P3, P = Pr{S} = Pr{S } = + Pr{ } Zu ). Gelte A B. Dann gilt B = A B\A und somit: Pr{B} P3 = Pr{A} + Pr{B\A} P Pr{A} Zu 3). P = Pr{S} = Pr{A S\A} P3 = Pr{A} + Pr{S\A} Zu 4). Es gilt A = (A B) A\B und somit: Pr{A} P3 = Pr{A B} + Pr{A\B} ( ) = Pr{A B} = Pr{B A\B} P3 = Pr{B} + Pr{A\B} ( ) = Pr{B} + Pr{A} Pr{A B} Zu 5). Folgt direkt aus P3. Wahrscheinlichkeit: Grundbegriffe 6 Def. Ist S endlich und sind alle s S gleichwahrscheinlich, d.h. Pr{s} = / S, so spricht man von Gleichverteilung. Bsp. Experiment, eine faire Münze n-mal zu werfen. Dann erhalten wir eine Gleichverteilung auf S := {H,T} n vermöge Pr{s} = / n für alle s S. Das Ereignis A := {k-mal Kopf und (n k)-mal Zahl} hat damit Wahrscheinlichkeit: Pr{A} Folg 5) = s A Denn: A = {s S #Kopf(s) = k} Pr{s} = A n = ( ) n k n FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD Wahrscheinlichkeit: Grundbegriffe 7 Def. Sei (Pr{ },S) ein W-Raum. Eine Zufallsvariable auf S ist eine Abbildung X : S R. Ist X eine Zufallsvariable auf S und x R, so bezeichne X = x das Ereignis: {s S X(s) = x} = X (x) Analog seien X x, X > x, und X x, X < x definiert. Bsp. Experiment, zwei faire Würfel zu werfen. Wir erhalten eine Gleichverteilung auf S := {,,3,4,5,6} mit Pr{s} = /36 für s S. Für die Zufallsvariable auf S, X((z,z )) := max{z,z } gilt dann: Pr{X = 3} = 5/36 Wahrscheinlichkeit: Grundbegriffe 8 Def. Sei (Pr{ },S) ein W-Raum und X eine Zufallsvariable auf S. Der Erwartungswert von X ist definiert durch: E[X] := x R x Pr{X = x} Intuition: E[X] gibt die durchschnittliche Verteilung der Werte von X relativ zu Pr{ } an. Bem. E[X] = x ( Pr{s}) = X(s) Pr{s} x R s X (x) s S Bei Gleichverteilung gilt also: E[X] = S s S X(s) Vorsicht: Ist S abzählbar unendlich, so ist E[X] i.a. nicht definiert, jedoch dann, falls die Reihe absolut konvergiert. FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD
11 Wahrscheinlichkeit: Grundbegriffe 9 Bsp. Betrachte das Experiment, zweifaire Münzenzuwerfen. Dann erhalten wir eine Gleichverteilung auf S := {HH,HT,TH,TT} vermöge Pr{s}=/4 für s S. Für die Zufallsvariable X, X(s) := 3 #Kopf(s) #Zahl(s) für s S, ergibt sich dann der folgende Erwartungswert: E[X] = 3 Pr{HH} + Pr{HT} + Pr{TH} Pr{TT} = 6/4 + /4 4/4 = Wahrscheinlichkeit: Grundbegriffe 0 Lemma (Einfache Eigenschaften). Sei (Pr{ },S) einw-raum, seien X, Y ZufallsvariablenaufS und α, β R Konstanten, sowie g: R R. Dann gilt:. E[α X + β Y ] = α E[X] + β E[Y ] (Linearität). E[g X] = x R g(x) Pr{X = x} 3. Für X(S) N gilt: E[X] = Pr{X i} i= Beweis. ) ergibt sich einfach aus der üblichen Definition: (α X + β Y )(s) = α X(s) + β Y (s) FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD Wahrscheinlichkeit: Grundbegriffe Zu ). E[g X] = y R y Pr{g X = y} = y R y Pr{{s S g(x(s)) = y}} = y R y Pr{ X = x} x g (y) = y R y Pr{X = x} Zu 3). = x R E[X] = i= = i= = i= x g (y) g(x) Pr{X = x} i Pr{X = i} da X(S) N i (Pr{X i} Pr{X i + }) Pr{X i} da (a a ) + (a a 3 )... = a + a + a Wahrscheinlichkeit: Grundbegriffe Zusatz (Einfache Eigenschaften). Wenn X, Y unabhängig sind, d.h. für alle x,y R gilt Pr{X =x und Y =y} = Pr{X =x} Pr{Y =y}, dann gilt E[X Y ] = E[X] E[Y ]. Beweis. Nach Definition und Unabhängigkeit erhält man: E[X Y ] = x y Pr{X =x und Y =y} x y = x y Pr{X =x} Pr{Y =y} ( x y ) ( ) = x Pr{X =x} y Pr{Y =y} x = E[X] E[Y ] y FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD
12 Wahrscheinlichkeit: Grundbegriffe 3 Konzept Indikator-Zufallsvariable: Erleichtert Berechnungdes Erwartungswertes einer Zufallsvariable. Def. Sei (Pr{ },S) ein W-Raum und A S. Die Indikator- Zufallsvariable I{A} bzgl. A (auch X A ) ist definiert durch { falls A eintrifft I{A}:= 0 sonst, d.h. I A (s) :=, falls s A, und I A (s) := 0, falls s / A. Folg (Indikator-Zufallsvariable). E[X{A}] = Pr{A} Denn: E[X A ]= x R x Pr{X A =x}=pr{x A =}=Pr{A}. Wahrscheinlichkeit: Grundbegriffe 4 Bsp. Erwartete Anzahl von Kopf nach n-maligem Werfen einer fairen Münze. Erinnerung: Gleichverteilung auf S := {H,T} n vermöge Pr{s} = / n für s S. Betrachte Zufallsvariable X(s) := #Kopf(s) für s S, sowie für i =,...,n die Indikator-Zufallsvariable X i bzgl. Ereignis: i-ter Wurf liefert Kopf, = E[X i ] Folg = Pr{ i-ter Wurf liefert Kopf } = / X = X X n = E[X] Lin. = n E[X i ] = n / = n/ i= i= FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD Quicksort fortgesetzt 6 Erwartete Zeit T(n) von randomized-quicksort(a,p,r), wobei n := r p +. Beobachtung: ) Es gibt maximal n Aufrufe von partition innerhalb einer Rechnung von quicksort bei Eingabegröße n. ) Ein Aufruf von partition benötigt Zeit O() plus eine Zeit, die proportional zur Anzahl der in der FOR-Schleife durchgeführten Schlüsselvergleiche (Zeile 4) ist. Lemma (Ansatz für Zufallsvariable). Sei X die Anzahl der von partition durchgeführten Schlüsselvergleiche in Zeile 4 innerhalb einer Rechnung von quicksort auf Eingaben der Größe n. Dann gilt T(n) = O(n + X). Quicksort fortgesetzt 7 Seien z,z,...,z n die Elemente des Eingabe-Arrays A[p..r] in aufsteigend sortierter Reihenfolge. Ferner sei Z ij := {z i,z i+,...,z j }. Frage: Wann vergleicht der Algorithmus z i mit z j? Definiere die Indikator-Zufallsvariable (gemessen über die gesamte Rechnung von quicksort) X ij := I{z i wird mit z j verglichen}. Jedes Paar z i,z j wird höchstens einmal miteinander verglichen! = X = n n X ij i= j=i+ FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD
13 Quicksort fortgesetzt 8 Linearität des Erwartungswertes und Folg. ergibt damit: [ ] n n E[X] = E X ij = n i= j=i+ n i= j=i+ = n n i= j=i+ E[X ij ] Pr{z i wird mit z j verglichen} Nun gilt für i<j: z i und z j werden verglichen das erste aus Z ij gewählte Pivotelement ist z i oder z j. Wegen Randomisierung ist jedes aus Z ij erstmals gewählte Pivotelement gleichwahrscheinlich: j i+ Quicksort fortgesetzt 9 = Pr{z i wird mit z j verglichen} = Pr{z i oder z j ist erstes Pivotelement in Z ij } = Pr{z i ist erstes Pivotelement in Z ij } + Pr{z j ist erstes Pivotelement in Z ij } = j i+ = E[X] = n n j i+ i= j=i+ = n n i k+ < n n k i= k= i= k= = n O(log n) i= = O(n log n) (Harmonische Reihe) FG KTuEA, TU Ilmenau AuD FG KTuEA, TU Ilmenau AuD Die Aussage n Quicksort fortgesetzt 0 k k= (log n) + = O(log n) erhält man so: n ( + ( + 0 ) log n = i log n i log n i log n j< i i +j j< i i (log n) + log n + ) FG KTuEA, TU Ilmenau AuD
14
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
MehrDatenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Sortieralgorithmen Einleitung Heapsort Quicksort 2 Motivation Sortieren ist Voraussetzung für viele Anwendungen Nach
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.
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
MehrAlgorithmen I. Tutorium 1-5. Sitzung. Dennis Felsing
Algorithmen I Tutorium 1-5. Sitzung Dennis Felsing dennis.felsing@student.kit.edu www.stud.uni-karlsruhe.de/~ubcqr/algo 2011-05-16 Heaps 1 Heaps Binäre Heaps Erhalten der Heap-Eigenschaft Erzeugen eines
MehrDatenstrukturen und Algorithmen Beispiellösung zu Heimübungsblatt 7. Abbildung 1: Das Array A als Baum (vgl. Foliensatz 16, Folie 3)
Aufgabe 3 a) Wir verwenden zur Lösung den Algorithmus Build-Heap 1, dieser verwendet die Funktion Heapify. Unser Array A ist gegeben durch [7, 10,, 5, 5,, 3, 3, 17]. 10 5 5 3 17 7 Abbildung 1: Das Array
MehrKapitel 8 Fortgeschrittene Sortieralgorithmen
Kapitel 8 Fortgeschrittene Sortieralgorithmen Zur Erinnerung: in Kapitel 6 Elementare Sortierverfahren Sortierverfahren, die auf Vergleichen von Werten basieren. Aufwand zum Sortieren von Feldern von n
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
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
MehrDas Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle
122 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 123 Das Suchproblem Gegeben Menge von Datensätzen.
Mehr8.1.3 Operation Build-Max-Heap Operation zur Konstruktion eines Heaps Eingabe: Feld A[1..n], n = länge(a) BUILD-MAX-HEAP (A)
Stand der Vorlesung: Datenstruktur Heap: fast vollständiger Binärbaum MaxHeap: sortierter Heap, größtes Element an Wurzel Sortierverfahren: HeapSort: Sortieren eines Feldes A[1.. n] Idee: in place: Feld
MehrWerden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.
7. 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.
MehrTechnische Universität München
Stand der Vorlesung: Datenstruktur Heap: fast vollständiger Binärbaum MaxHeap: sortierter Heap, größtes Element an Wurzel Sortierverfahren: HeapSort: Sortieren eines Feldes A[1.. n] Idee: in place: Feld
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:
MehrDas Suchproblem 4. Suchen Das Auswahlproblem Suche in Array
Das Suchproblem Gegeben. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.-3,2.2-3,2.3-] Menge von Datensätzen. Beispiele
MehrAlgorithmen und Datenstrukturen 8. Vorlesung
lgorithmen und Datenstrukturen. Vorlesung Karl-Heinz Niggl. Mai 6 FG KTuE, TU Ilmenau ud..6 Untere Schranke und Sortieren in Linearzeit etrachtetenverschiedene lgorithmen, die n Werte aus einer totalen
MehrDas Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle
119 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Exponentielle Suche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 120 Das Suchproblem Gegeben
MehrDas Suchproblem 4. Suchen Das Auswahlproblem Suche in Array
Das Suchproblem Gegeben. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Exponentielle Suche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.-3,2.2-3,2.3-] Menge
MehrGrundbegriffe der Wahrscheinlichkeitsrechnung
Algorithmen und Datenstrukturen 349 A Grundbegriffe der Wahrscheinlichkeitsrechnung Für Entwurf und Analyse randomisierter Algorithmen sind Hilfsmittel aus der Wahrscheinlichkeitsrechnung erforderlich.
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Teil 2: Sortieren und Suchen Martin Hofmann LFE Theoretische Informatik, Institut für Informatik, Ludwig-Maximilians Universität, München 16. April 2016 Martin Hofmann Algorithmen
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
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
MehrSortieren II / HeapSort Heaps
Organisatorisches VL-07: Sortieren II: HeapSort (Datenstrukturen und Algorithmen, SS 2017) Vorlesung: Gerhard Woeginger (Zimmer 4024 im E1) Email: dsal-i1@algo.rwth-aachen.de Webseite: http://algo.rwth-aachen.de/lehre/ss17/dsa.php
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,
Mehr4 Probabilistische Analyse und randomisierte Algorithmen
Algorithmen und Datenstrukturen 96 4 Probabilistische Analyse und randomisierte Algorithmen Bei der Algorithmenanalyse ist es sehr hilfreich, Aspekte berücksichtigen zu können, die vom Zufall abhängen.
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 01/13 6. Vorlesung Prioritäten setzen Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Guten Morgen! Tipps für unseren ersten Test am 0. November: Lesen
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2018 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Organisatorisches: Keine Vorlesung nächste Woche wegen
MehrAlgorithmen und Datenstrukturen 11. Vorlesung
Algorithmen und Datenstrukturen 11. Vorlesung Martin Dietzfelbinger 23. Juni 2008 FG KTuEA, TU Ilmenau AuD 23.06.2008 Sortieren FG KTuEA, TU Ilmenau AuD 23.06.2008 1 Sortieren a 1 a 2 a 3 a n 10 1 4 5
MehrDefinition Ein Heap (priority queue) ist eine abstrakte Datenstruktur mit folgenden Kennzeichen:
HeapSort Allgemeines Sortieralgorithmen gehören zu den am häufigsten angewendeten Algorithmen in der Datenverarbeitung. Man hatte daher bereits früh ein großes Interesse an der Entwicklung möglichst effizienter
MehrA7.1 Untere Schranke. Algorithmen und Datenstrukturen. A7.1 Untere Schranke. Algorithmen und Datenstrukturen. A7.2 Quicksort. A7.
Algorithmen und Datenstrukturen 14. März 2018 A7. III Algorithmen und Datenstrukturen A7. III Marcel Lüthi and Gabriele Röger Universität Basel 14. März 2018 A7.1 Untere Schranke A7.2 Quicksort A7.3 Heapsort
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
MehrLemma 23 Die (paarweise verschiedenen) Ereignisse A 1,..., A n sind genau dann unabhängig,
Lemma 23 Die (paarweise verschiedenen) Ereignisse A 1,..., A n sind genau dann unabhängig, wenn für alle (s 1,..., s n ) {0, 1} n gilt, dass wobei A 0 i = Āi und A 1 i = A i. Pr[A s 1 1... Asn n ] = Pr[A
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
Mehr1.3 Erinnerung: Mergesort
Mergesort 1.3 Erinnerung: Mergesort Um n Zahlen/Objekte a 1,..., a n zu sortieren, geht der Mergesort-Algorithmus so vor: Falls n n 0 : Sortiere mit einem naiven Algorithmus (z. B. Insertion Sort). Sonst:
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
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
MehrTechnische Universität München
Stand der Vorlesung Kapitel 2: Auffrischung einiger mathematischer Grundlagen Mengen, Potenzmenge, Kreuzprodukt (Paare, Tripel, n-tupel) Relation: Teilmenge MxN Eigenschaften: reflexiv, symmetrisch, transitiv,
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen A7. Sortieren III Marcel Lüthi and Gabriele Röger Universität Basel 14. März 2018 Untere Schranke Sortierverfahren Sortieren Vergleichsbasierte Verfahren Nicht vergleichsbasierte
MehrAlgo-Animation. Konstruktion der Partition: eigentliche Kunst / Arbeit bei Quicksort. Resultat: Partition A=A 1 WA 2 A 1 W A 2.
Algo-Animation Konstruktion der Partition: eigentliche Kunst / Arbeit bei Quicksort 1. Wahl eines Elementes W im Array (heißt Pivot-Element) 2. Suchen eines i von links mit A[i]>W 3. Suchen eines j von
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
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
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
Mehr3. Suchen. Das Suchproblem. Suche in Array. Lineare Suche. 1 n. i = n Gegeben Menge von Datensätzen.
Das Suchproblem Gegeben Menge von Datensätzen. 3. Suchen Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle Jeder Datensatz hat einen Schlüssel k. Schlüssel sind vergleichbar: eindeutige Antwort auf
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.
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
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
MehrAufgabe 8. 1 Arbeitsweise illustrieren. 2 Korrektheitsbeweis führen. 3 Laufzeitanalyse durchführen.
Aufgabe 8 Betrachten Sie den folgenden Algorithmus namens Bubble-Sort. Bubble-Sort(A[1..n]): 1 for i 1 to length(a) 1 2 do for j length(a) downto i + 1 3 do if A[j 1] > A[j] 4 then A[j 1] A[j] 1 Arbeitsweise
MehrÜbersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015
Datenstrukturen und Algorithmen Vorlesung 8: (K6) 1 Joost-Pieter Katoen Lehrstuhl für Informatik Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-15/dsal/ 7. Mai 015 3 Joost-Pieter
Mehr9. Rekursion. 1 falls n 1 n (n 1)!, andernfalls. Experiment: Die Türme von Hanoi. Links Mitte Rechts. Mathematische Rekursion
Experiment: Die Türme von Hanoi. Rekursion Mathematische Rekursion, Terminierung, der Aufrufstapel, Beispiele, Rekursion vs. Iteration Links Mitte Rechts Mathematische Rekursion Viele mathematische Funktionen
MehrAlgorithmen und Datenstrukturen 4. Vorlesung
Algorithmen und Datenstrukturen 4 Vorlesung Karl-Heinz Niggl 25 April 26 FG KTuEA, TU Ilmenau AuD 25426 Lösen von Rekursionsgleichungen Die worst-case Laufzeit T A eines rekursiven Algorithmus A ist oft
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
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen B4. Priority Queues und Heaps Marcel Lüthi and Gabriele Röger Universität Basel 28. März 2018 Einführung Kollektion von Elementen Grundlegende Operationen sind Einfügen
MehrSortieren und Suchen. Kapitel II. Sortieren und Suchen
Kapitel II Sortieren und Suchen 43 Inhalt Kapitel II 1 Heapsort Heaps Operationen auf Heaps 2 Prioritätsschlangen 3 Quicksort Randomisiertes Quicksort 4 Vergleichskomplexität 5 Median und Selektion 44
Mehr1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit ** i=1
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 05/06 ITI Wagner. Musterlösung Problem : Average-case-Laufzeit vs. Worst-case-Laufzeit ** (a) Im schlimmsten Fall werden für jedes Element
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
MehrAbschnitt: Algorithmendesign und Laufzeitanalyse
Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher
Mehr2 Sortieren. Beispiel: Es seien n = 8 und a = i : a i : ϕ(i) : a ϕ(i) :
2 Sortieren Das Sortieren einer Datenfolge ist eines der am leichtesten zu verstehenden und am häufigsten auftretenden algorithmischen Probleme. In seiner einfachsten Form besteht das Problem darin, eine
MehrSortieralgorithmen. Jan Pöschko. 18. Januar Problemstellung Definition Warum Sortieren?... 2
Jan Pöschko 18. Januar 2007 Inhaltsverzeichnis 1 Problemstellung 2 1.1 Definition................................... 2 1.2 Warum Sortieren?.............................. 2 2 Einfache Sortieralgorithmen
MehrSuchen und Sortieren Sortieren. Heaps
Suchen und Heaps (Folie 156, Seite 56 im Skript) Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die letzte Ebene vollständig besetzt ist,
MehrDie mittlere Höhe eines Binärbaumes. h(t) = 1 e(t) mit E(t) = Menge der Blätter von t, h(b, t) = Höhe des Blattes b in t
Höhe von Binärbäumen Die mittlere Höhe eines Binärbaumes h(t) = 1 e(t) b E(t) mit E(t) = Menge der Blätter von t, h(b, t) = Höhe des Blattes b in t h(b, t), Höhe von Binärbäumen Die mittlere Höhe eines
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
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 2014/15 7. Vorlesung Zufall! Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Inhaltsverzeichnis Ein Zufallsexperiment InsertionSort: erwartete bzw.
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
Mehr3. Kombinatorik und Wahrscheinlichkeit
3. Kombinatorik und Wahrscheinlichkeit Es geht hier um die Bestimmung der Kardinalität endlicher Mengen. Erinnerung: Seien A, B, A 1,..., A n endliche Mengen. Dann gilt A = B ϕ: A B bijektiv Summenregel:
MehrRandomisierte Algorithmen 2. Erste Beispiele
Randomisierte Algorithmen Randomisierte Algorithmen 2. Erste Beispiele Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 35 Randomisierter Identitätstest
MehrKap. 3 Sortieren. 7. VO DAP2 SS Mai Vorlesung am Do 7.5. entfällt wegen FVV um 14 Uhr HeapSort ff 3.1.
Kap. 3 Sortieren 3.1.5 HeapSort ff 3.1.6 Priority Queues Vorlesung am Do 7.5. entfällt wegen FVV um 14 Uhr Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 7.
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 013/14 7. Vorlesung Zufall! Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Ein Experiment Ein Franke und ein Münchner gehen (unabhängig voneinander)
MehrPaarweise Unabhängigkeit vs. Unabhängigkeit
Paarweise Unabhängigkeit vs. Unabhängigkeit Beispiel: Wir betrachten das Szenario von zuvor. Wissen bereits, dass A 1, A 2 und A 1, B unabhängig sind. Analog folgt, dass A 2 und B unabhängige Ereignisse
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Große Übung #6 Phillip Keldenich, Arne Schmidt 26.02.2017 Heute: Master-Theorem Phillip Keldenich, Arne Schmidt Große Übung 2 Vorbetrachtungen Wir betrachten rekursive Gleichungen
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
MehrPraktikum Algorithmische Anwendungen WS 2006/07 Sortieren in linearer Laufzeit
Praktikum Algorithmische Anwendungen WS 2006/07 Sortieren in linearer Laufzeit Team A blau Martin Herfurth 11043831 Markus Wagner 11043447 5. Februar 2007 1 1 Untere Schranke für Vergleichsbasierte Algorithmen
Mehrf 1 (n) = log(n) + n 2 n 5 f 2 (n) = n 3 + n 2 f 3 (n) = log(n 2 ) f 4 (n) = n n f 5 (n) = (log(n)) 2
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Lösung - Präsenzübung.05.0 F. Corzilius, S. Schupp, T. Ströder Aufgabe (Asymptotische Komplexität): (6 + 0 + 6 = Punkte) a) Geben Sie eine formale
MehrProgrammiertechnik II
2007 Martin v. Löwis Priority Queues and Heapsort 2007 Martin v. Löwis 2 Priority Queue Abstrakter Datentyp Inhalt: Elemente mit Priorität Operationen: Einfügen: Angabe des Elements und seiner Priorität
Mehrlim log 2n n = > 0 Da es einen Limes gibt, gibt es auch einen Limes inferior, der gleich diesem Limes ist.
Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Jonathan Heinen, Thomas Ströder, Sabrina von Styp Aufgabe 1 (O-Notation): Beweisen oder widerlegen Sie die folgenden Aussagen: (3 + 3 + 4 = 10 Punkte)
MehrGliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen
5. Compiler Gliederung 1. Struktur eines Compilers 2. Syntaxanalyse durch rekursiven Abstieg 3. Ausnahmebehandlung 4. Arrays und Strings 6. Sortieren und Suchen 1. Grundlegende Datenstrukturen 2. Bäume
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
MehrRandomisierte Algorithmen und probabilistische Analyse
Randomisierte Algorithmen und probabilistische Analyse S.Seidl, M.Nening, T.Niederleuthner S.Seidl, M.Nening, T.Niederleuthner 1 / 29 Inhalt 1 Randomisierte Algorithmen 2 Probabilistische Analyse S.Seidl,
MehrSatz 172 Jedes vergleichsbasierte Sortierverfahren benötigt im worst-case mindestens n ld n + O(n) Vergleiche und hat damit Laufzeit Ω(n log n).
2.6 Vergleichsbasierte Sortierverfahren Alle bisher betrachteten Sortierverfahren sind vergleichsbasiert, d.h. sie greifen auf Schlüssel k, k (außer in Zuweisungen) nur in Vergleichsoperationen der Form
MehrGrundzüge von Algorithmen und Datenstrukturen, WS 15/16: Lösungshinweise zum 13. Übungsblatt
U N S A R I V E R S A V I E I T A S N I S S Grundzüge von Algorithmen und Datenstrukturen, WS /6: Lösungshinweise zum 3. Übungsblatt Christian Hoffmann, Fabian Bendun Aufgabe 3. (a) Sei j i + = n die Größe
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.
Mehr1 Raumwechsel: Gr. 15 (Do 10-12, F-235) ab sofort in G Studie zum Arbeitsverhalten von Studierenden unter Leitung
Organisatorisches Algorithmen und Datenstrukturen Kapitel 3: Divide & Conquer Frank Heitmann heitmann@informatik.uni-hamburg.de 1 Raumwechsel: Gr. 15 (Do 10-12, F-235) ab sofort in G-021. 2 Studie zum
MehrHumboldt-Universität zu Berlin Berlin, den Institut für Informatik
Humboldt-Universität zu Berlin Berlin, den 15.06.2015 Institut für Informatik Prof. Dr. Ulf Leser Übungen zur Vorlesung M. Bux, B. Grußien, J. Sürmeli, S. Wandelt Algorithmen und Datenstrukturen Übungsblatt
MehrAbstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken.
Abstrakte Datentypen und Datenstrukturen/ Einfache Beispiele Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken. Datenstruktur (DS): Realisierung
MehrAlgorithmen und Datenstrukturen 1. Vorlesung
Algorithmen und Datenstrukturen 1. Vorlesung Martin Dietzfelbinger 7. April 2008 FG KTuEA, TU Ilmenau AuD 07.04.2008 Hörer: Informatikstudierende im 2. Semester, Ingenieurinformatik im 4. Semester. Andere
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
MehrKlausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min
TU Ilmenau, Fakultät für Informatik und Automatisierung FG Komplexitätstheorie und Effiziente Algorithmen Univ.-Prof. Dr. M. Dietzfelbinger, Dipl.-Ing. C. Mattern Klausur Algorithmen und Datenstrukturen
MehrInformatik II, SS 2018
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 15b (13.06.2018) Graphenalgorithmen IV Algorithmen und Komplexität Prims MST-Algorithmus A = while A ist kein Spannbaum do e = u, v ist
MehrGrundlagen der Algorithmen und Datenstrukturen Kapitel 6
Grundlagen der Algorithmen und Datenstrukturen Kapitel 6 Christian Scheideler + Helmut Seidl SS 2009 25.05.09 Kapitel 6 1 Priority Queue M: Menge von Elementen Jedes Element e identifiziert über key(e).
MehrProgramm heute. Algorithmen und Datenstrukturen (für ET/IT) Suchen. Lineare Suche. Such-Algorithmen. Sommersemester Dr.
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 0 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Fortgeschrittene Datenstrukturen Such-Algorithmen
MehrKapitel 2: Sortier- und Selektionsverfahren Gliederung
Gliederung 1. Laufzeit von Algorithmen 2. Sortier- und Selektionsverfahren 3. Paradigmen des Algorithmenentwurfs 4. Ausgewählte Datenstrukturen 5. Algorithmische Geometrie 6. Randomisierte 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.
MehrZentralübung Diskrete Wahrscheinlichkeitstheorie
Zentralübung Diskrete Wahrscheinlichkeitstheorie Christian Ivicevic (christian.ivicevic@tum.de) Technische Universität München 14. Juni 2017 Agenda Disclaimer und wichtige Hinweise Übungsaufgaben Disclaimer
MehrBeispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5
Robert Elsässer Paderborn, den 15. Mai 2008 u.v.a. Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 AUFGABE 1 (6 Punkte): Nehmen wir an, Anfang bezeichne in einer normalen
MehrÜbersicht. Einfache Verfahren MergeSort Untere Schranke QuickSort Selektieren Schnelleres Sortieren Externes Sortieren. 6 Sortieren.
Übersicht 6 Sortieren Einfache Verfahren MergeSort Untere Schranke QuickSort Selektieren Schnelleres Sortieren Externes Sortieren H. Täubig (TUM) GAD SS 14 221 Statisches Wörterbuch Sortieren Lösungsmöglichkeiten:
Mehr11. Elementare Datenstrukturen
11. Elementare Datenstrukturen Definition 11.1: Eine dynamische Menge ist gegeben durch eine oder mehrer Mengen von Objekten sowie Operationen auf diesen Mengen und den Objekten der Mengen. Dynamische
MehrRandomisierte Datenstrukturen
Seminar über Algorithmen DozentInnen: Helmut Alt, Claudia Klost Randomisierte Datenstrukturen Ralph Schäfermeier 13. 2. 2007 Das Verwalten von Mengen, so dass ein schneller Zugriff auf deren Elemente gewährleistet
Mehr