7 Sortieren in linearer Zeit

Größe: px
Ab Seite anzeigen:

Download "7 Sortieren in linearer Zeit"

Transkript

1 lgorithmen und Datenstrukturen Sortieren in linearer Zeit Wie schnell ist Sortieren möglich? isher: verschiedene lgorithmen, welche n Zahlen in O(n log n) Zeit sortieren. Gemeinsamkeit: Sortierung beruht auf paarweisen Vergleichen der Eingabeelemente. Man nennt Verfahren dieser rt vergleichende Sortierverfahren. In bschnitt. zeigen wir, dass vergleichende Sortierverfahren im ungünstigsten Fall Ω(n log n) Vergleiche ausführen müssen, um n Elemente zu sortieren. Damit sind Mergesort und Heapsort asymptotisch optimal. In den folgenden bschnitten werden drei Sortierverfahren vorgestellt, welche in linearer Zeit sortieren. Diese verwenden andere Operationen als Vergleiche. Sortieren in linearer Zeit TU ergakademie Freiberg, WS /

2 lgorithmen und Datenstrukturen. Untere Schranken für Sortierverfahren Vergleichendes Sortieren: Information über Eingabefeld a, a,..., a n nur durch paarweise Vergleiche a i < a j, a i a j, a i = a j, a i a j, oder a i > a j, ohne bspw. den Wert der Elemente zu berücksichtigen. Ohne Einschränkung: Eingabelemente paarweise verschieden, sodass Prüfung auf Gleichheit entfällt. Damit sind alle weiteren Vergleiche äquivalent, betrachte also ausschließlich Vergleiche der Form a i a j.. Untere Schranken für Sortierverfahren TU ergakademie Freiberg, WS /

3 lgorithmen und Datenstrukturen Entscheidungsbäume Ein Entscheidungsbaum ist ein voller binärer aum, der die von einem Sortierverfahren durchgeführten Vergleiche und Entscheidungen repräsentiert. lle anderen spekte des Sortieralgorithmus (Datenbewegung, Steuerung) werden dabei wegabstrahiert. innere Knoten: ezeichnung i : j ( i, j n) steht für Vergleich a i a j ; linker Teilbaum entspricht Fortgang des lgorithmus falls a i a j, rechter Teilbaum dem von a i > a j. lätter: jedem latt entspricht die zur Sortierung der Eingabefolge erforderliche Permutation π(), π(),..., π(n). Jede usführung des lgorithmus entspricht ein Weg von der Wurzel zu einem latt. n jedem inneren Knoten verzweigt der lgorithmus in bhängigkeit von der bis zu dieser Stelle angesammelten Information.. Untere Schranken für Sortierverfahren TU ergakademie Freiberg, WS /

4 lgorithmen und Datenstrukturen : > : : > >,, :,, : > >,,,,,,,, Entscheidungsbaum für Insertion-Sort angewandt auf dreielementiges Eingabefeld. Die ezeichnung i : j in einem inneren Knoten steht für den Vergleich a i a j, ein latt mit der Permutation π(), π(),..., π(n) steht für eine endgültige Sortierreihenfolge a π() a π() a π(n). Der hervorgehobene Weg folgt den Entscheidungen bei der Eingabe a =, a =, a =.. Untere Schranken für Sortierverfahren TU ergakademie Freiberg, WS /

5 lgorithmen und Datenstrukturen Jedes vergleichende Sortierverfahren muss alle n! Permutationen eines n- elementigen Eingabefeldes erzeugen können. Deshalb: Der zugehörige Entscheidungsbaum muss zu jeder dieser Permutationen ein latt enthalten. Jedes dieser lätter muss von der Wurzel durch eine mögliche usführung des lgorithmus erreichbar sein. Wir betrachten daher nur Entscheidungsbäume, in denen jede Permutation als erreichbares latt auftritt.. Untere Schranken für Sortierverfahren TU ergakademie Freiberg, WS /

6 lgorithmen und Datenstrukturen Eine untere Schranke für den ungünstigsten Fall Die größtmögliche nzahl erforderlicher Vergleiche eines vergleichenden Sortierverfahrens ist die Länge des längsten Weges in dessen Entscheidungsbaum von der Wurzel zu einem latt. Eine untere Schranke für die usführungszeit eines vergleichenden Sortierverfahrens ist daher gegeben durch eine untere Schranke für die Höhe aller Entscheidungsbäume, in denen jede Permutation als erreichbares latt auftritt. (Z.. Insertion-Sort Θ(n ), Merge-Sort Θ(n log n). Satz. Ein vergleichendes Sortierverfahren benötigt im ungünstigsten Fall Ω(n log n) Vergleiche. Korollar. Heapsort und Merge-Sort sind asymptotisch optimale vergleichende Sortierverfahren.. Untere Schranken für Sortierverfahren TU ergakademie Freiberg, WS /

7 lgorithmen und Datenstrukturen. Counting-Sort Wesentliche Zusatzannahme: Zu sortierende Zahlen liegen in {,,..., k} für festes, im Voraus bekanntes k. Grundidee: estimme für jedes zu sortierende Element x die nzahl Elemente, welche in der sortierten Reihenfolge vor x liegen, und platziere damit x an die korrekte Stelle. Eingabe: Feld [.. n] mit [j] {,..., k} für alle j =,..., n., k, n als Parameter übergeben. usgabe: Feld [.. n] mit Inhalt von in sortierter Reihenfolge. Hilfsfeld: C[.. k].. Counting-Sort TU ergakademie Freiberg, WS /

8 lgorithmen und Datenstrukturen COUNTING-SORT(,, k) for i to k do C[i] for j to length[] do C[[j]] C[[j]] + C[i] gibt nun an, wie oft i in vorkommt for i to k do C[i] C[i] + C[i ] C[i] gibt nun die nzahl Elemente i in an for j length[] downto do [C[[j]]] [j] C[[j]] C[[j]]. Counting-Sort TU ergakademie Freiberg, WS /

9 lgorithmen und Datenstrukturen C usführung von Counting-Sort auf Eingabefeld [.. ] mit Elementen aus {,,..., } mit Hilfsfeld C und sortierter usgabe in Feld.. Counting-Sort TU ergakademie Freiberg, WS /

10 lgorithmen und Datenstrukturen C usführung von Counting-Sort auf Eingabefeld [.. ] mit Elementen aus {,,..., } mit Hilfsfeld C und sortierter usgabe in Feld.. Counting-Sort TU ergakademie Freiberg, WS /

11 lgorithmen und Datenstrukturen C usführung von Counting-Sort auf Eingabefeld [.. ] mit Elementen aus {,,..., } mit Hilfsfeld C und sortierter usgabe in Feld.. Counting-Sort TU ergakademie Freiberg, WS /

12 lgorithmen und Datenstrukturen C usführung von Counting-Sort auf Eingabefeld [.. ] mit Elementen aus {,,..., } mit Hilfsfeld C und sortierter usgabe in Feld.. Counting-Sort TU ergakademie Freiberg, WS /

13 lgorithmen und Datenstrukturen C usführung von Counting-Sort auf Eingabefeld [.. ] mit Elementen aus {,,..., } mit Hilfsfeld C und sortierter usgabe in Feld.. Counting-Sort TU ergakademie Freiberg, WS /

14 lgorithmen und Datenstrukturen C usführung von Counting-Sort auf Eingabefeld [.. ] mit Elementen aus {,,..., } mit Hilfsfeld C und sortierter usgabe in Feld.. Counting-Sort TU ergakademie Freiberg, WS /

15 lgorithmen und Datenstrukturen C usführung von Counting-Sort auf Eingabefeld [.. ] mit Elementen aus {,,..., } mit Hilfsfeld C und sortierter usgabe in Feld.. Counting-Sort TU ergakademie Freiberg, WS /

16 lgorithmen und Datenstrukturen C usführung von Counting-Sort auf Eingabefeld [.. ] mit Elementen aus {,,..., } mit Hilfsfeld C und sortierter usgabe in Feld.. Counting-Sort TU ergakademie Freiberg, WS /

17 lgorithmen und Datenstrukturen C usführung von Counting-Sort auf Eingabefeld [.. ] mit Elementen aus {,,..., } mit Hilfsfeld C und sortierter usgabe in Feld.. Counting-Sort TU ergakademie Freiberg, WS /

18 lgorithmen und Datenstrukturen C usführung von Counting-Sort auf Eingabefeld [.. ] mit Elementen aus {,,..., } mit Hilfsfeld C und sortierter usgabe in Feld.. Counting-Sort TU ergakademie Freiberg, WS /

19 lgorithmen und Datenstrukturen C usführung von Counting-Sort auf Eingabefeld [.. ] mit Elementen aus {,,..., } mit Hilfsfeld C und sortierter usgabe in Feld.. Counting-Sort TU ergakademie Freiberg, WS /

20 lgorithmen und Datenstrukturen ufwand: for -Schleife Zeilen : for -Schleife Zeilen : for -Schleife Zeilen : for -Schleife Zeilen : Θ(k) Θ(n) Θ(k) Θ(n) Insgesamt: Θ(n + k) Geeignetes Verfahren falls k = O(n), in diesem Fall Laufzeit Θ(n). Kein vergleichendes Sortierverfahren (keine Vergleiche, sondern Zahlwerte werden ausgenutzt), daher O(n log n)-schranke verbesserbar. Counting-Sort ist stabil: gleiche Zahlen erscheinen im usgabefeld in derselben Reihenfolge. (Wichtig wenn Zahlen Schlüssel zu größeren Datensätzen). Counting-Sort TU ergakademie Freiberg, WS /

21 lgorithmen und Datenstrukturen. Radix-Sort lgorithmus aus dem Lochkarten-Zeitalter (frühes. JH) Lochkarten mit Spalten, in jeder Spalte kann an einer von Positionen ein Loch eingestanzt werden. Lochkarten-Lesemaschinen können Kartenstapel hinsichtlich einer Spalte in Teilstapel mit derselben gestanzten Position aufteilen. Diese Teilstapel werden ihrerseits weitersortiert. eispiele:. Sortieren von Dezimalzahlen, nur Positionen erforderlich. Nach jeder Ziffer wird separat sortiert; bei d Ziffern also d Sortierläufe nötig.. Sortieren von Datensätzen nach Tag, dann Monat, dann Jahr.. Radix-Sort TU ergakademie Freiberg, WS /

22 lgorithmen und Datenstrukturen Wichtig: Sortieren nach niedrigstwertigen Ziffer zuerst (Sonst zuviele Hilfsstapel erforderlich). Rechts: nwendung von Radix-Sort auf Stapel von Zahlen von je drei Ziffern. Die eingefärbte Spalte ist diejenige, nach der gerade sortiert wird. Wesentlich hier: Sortierverfahren für Spalten muss stabil sein, da sonst zurückliegende Feinsortierung wieder zunichtegemacht werden könnte.. Radix-Sort TU ergakademie Freiberg, WS /

23 lgorithmen und Datenstrukturen Wichtig: Sortieren nach niedrigstwertigen Ziffer zuerst (Sonst zuviele Hilfsstapel erforderlich). Rechts: nwendung von Radix-Sort auf Stapel von Zahlen von je drei Ziffern. Die eingefärbte Spalte ist diejenige, nach der gerade sortiert wird. Wesentlich hier: Sortierverfahren für Spalten muss stabil sein, da sonst zurückliegende Feinsortierung wieder zunichtegemacht werden könnte.. Radix-Sort TU ergakademie Freiberg, WS /

24 lgorithmen und Datenstrukturen Wichtig: Sortieren nach niedrigstwertigen Ziffer zuerst (Sonst zuviele Hilfsstapel erforderlich). Rechts: nwendung von Radix-Sort auf Stapel von Zahlen von je drei Ziffern. Die eingefärbte Spalte ist diejenige, nach der gerade sortiert wird. Wesentlich hier: Sortierverfahren für Spalten muss stabil sein, da sonst zurückliegende Feinsortierung wieder zunichtegemacht werden könnte.. Radix-Sort TU ergakademie Freiberg, WS /

25 lgorithmen und Datenstrukturen Wichtig: Sortieren nach niedrigstwertigen Ziffer zuerst (Sonst zuviele Hilfsstapel erforderlich). Rechts: nwendung von Radix-Sort auf Stapel von Zahlen von je drei Ziffern. Die eingefärbte Spalte ist diejenige, nach der gerade sortiert wird. Wesentlich hier: Sortierverfahren für Spalten muss stabil sein, da sonst zurückliegende Feinsortierung wieder zunichtegemacht werden könnte.. Radix-Sort TU ergakademie Freiberg, WS /

26 lgorithmen und Datenstrukturen Wichtig: Sortieren nach niedrigstwertigen Ziffer zuerst (Sonst zuviele Hilfsstapel erforderlich). Rechts: nwendung von Radix-Sort auf Stapel von Zahlen von je drei Ziffern. Die eingefärbte Spalte ist diejenige, nach der gerade sortiert wird. Wesentlich hier: Sortierverfahren für Spalten muss stabil sein, da sonst zurückliegende Feinsortierung wieder zunichtegemacht werden könnte.. Radix-Sort TU ergakademie Freiberg, WS /

27 lgorithmen und Datenstrukturen Wichtig: Sortieren nach niedrigstwertigen Ziffer zuerst (Sonst zuviele Hilfsstapel erforderlich). Rechts: nwendung von Radix-Sort auf Stapel von Zahlen von je drei Ziffern. Die eingefärbte Spalte ist diejenige, nach der gerade sortiert wird. Wesentlich hier: Sortierverfahren für Spalten muss stabil sein, da sonst zurückliegende Feinsortierung wieder zunichtegemacht werden könnte.. Radix-Sort TU ergakademie Freiberg, WS /

28 lgorithmen und Datenstrukturen Wichtig: Sortieren nach niedrigstwertigen Ziffer zuerst (Sonst zuviele Hilfsstapel erforderlich). Rechts: nwendung von Radix-Sort auf Stapel von Zahlen von je drei Ziffern. Die eingefärbte Spalte ist diejenige, nach der gerade sortiert wird. Wesentlich hier: Sortierverfahren für Spalten muss stabil sein, da sonst zurückliegende Feinsortierung wieder zunichtegemacht werden könnte.. Radix-Sort TU ergakademie Freiberg, WS /

29 lgorithmen und Datenstrukturen Wichtig: Sortieren nach niedrigstwertigen Ziffer zuerst (Sonst zuviele Hilfsstapel erforderlich). Rechts: nwendung von Radix-Sort auf Stapel von Zahlen von je drei Ziffern. Die eingefärbte Spalte ist diejenige, nach der gerade sortiert wird. Wesentlich hier: Sortierverfahren für Spalten muss stabil sein, da sonst zurückliegende Feinsortierung wieder zunichtegemacht werden könnte.. Radix-Sort TU ergakademie Freiberg, WS /

30 lgorithmen und Datenstrukturen Pseudocode. Radix-Sort angewandt auf n-elementiges Feld aus d-ziffrigen Zahlen. Ziffer ist die niedrigstwertige, d die höchstwertige Ziffer. RDIX-SORT(, d) for i to d do Sortiere Feld bezüglich Ziffer i mit stabilem Sortierverfahren Laufzeit. nnahme: Sortierung der Ziffern jeweils mit Counting-Sort Θ(n + k) per Durchlauf (Ziffern im ereich,..., k) d Durchläufe Insgesamt also Θ(d(n + k). Falls k = O(n) ergibt sich Laufzeit von O(dn).. Radix-Sort TU ergakademie Freiberg, WS /

31 lgorithmen und Datenstrukturen Korrektheit: Induktion über nzahl Ziffern Seien Ziffern,,..., i bereits sortiert Zeige: stabile Sortierung nach Ziffer i resultiert in Sortiertheit von Ziffern,,..., i. Unterscheiden sich zwei Zahlen in Ziffer i, so bringt Sortierung nach Ziffer i diese in die korrekte Reihenfolge. Ziffern,..., i sind dabei irrelevant. Stimmen zwei Zahlen hinsichtlich Ziffer i überein, so sind diese bereits in sortierter Reihenfolge (Induktionshypothese) und stabile Sortierung erhält diese Reihenfolge. Hierbei wird die Rolle der Stabilität deutlich. Wie teilt man einen Schlüssel in Ziffern ein?. Radix-Sort TU ergakademie Freiberg, WS /

32 lgorithmen und Datenstrukturen Lemma. Gegeben seien n Zahlen bestehend aus jeweils b its sowie eine natürliche Zahl r b. Erstere werden durch RDIX-SORT in einer Laufzeit von Θ ( (b/r)(n + r ) ) sortiert. eweis: Für r b betrachte jeden Schlüssel als aus d = b/r Ziffern von je r its zusammengesetzt. Jede Ziffer liegt somit im ereich,..., r, d.h. für Counting-Sort wäre k = r. esipiel: ein -it Wort wird aufgeteilt in vier Ziffern aus je its, d.h. b =, r =, k = r =, d = b/r =. Jeder Durchlauf erfordert Θ(n + k) = Θ(n + r ) Zeit, d Durchläufe ergeben somit eine Laufzeit von Θ(d(n + r )) = Θ ( (b/r)(n + r ) ).. Radix-Sort TU ergakademie Freiberg, WS /

33 lgorithmen und Datenstrukturen Wahl von r? usgleich zwischen b/r und n + r. Wahl r log n führt auf Θ(b/ log n(n + n)) = Θ(bn/ log n) Für r < log n ist b/r > b/ log n und n + r wird nicht asymptotisch kleiner. Für r > log n wird n + r groß. eispiel: r = log n r = log n = ( log n ) = n. Unter der nnahme b < log n erhalten wir für diese Wahl von r also eine Laufzeit von Θ(n). Um Zahlen von je it Länge zu sortieren würden wir also r = log = its verwenden, was auf b/r = Durchläufe führt.. Radix-Sort TU ergakademie Freiberg, WS /

34 lgorithmen und Datenstrukturen Vergleich Radix-Sort mit Merge-Sort und Quicksort: Seien eine Million ( ) -it ganze Zahlen zu sortieren Radix-Sort benötigt / = Durchläufe. Merge-/Quicksort: log n = Durchläufe. eachte: Ein Durchlauf von Radix-Sort entspricht eigentlich zwei Durchläufen der Daten: einmal zum Zählen und einmal um die Daten zu verteilen.. Radix-Sort TU ergakademie Freiberg, WS /

35 lgorithmen und Datenstrukturen. ucket-sort nstelle der nnahme bei Counting-Sort, dass die Elemente in einem vorher bekannten Zahlenbereich liegen, beruht die lineare Laufzeit von ucket- Sort auf der nnahme, dass die Eingabe durch ein Zufallsexperiment generiert wird, bei welchem die Elemente gleichmäßig über das Intervall [, ) verteilt sind. Idee: Zerlege [, ) in n Gefäße (uckets a ). Verteile die n Eingabeelemente auf die Gefäße. Sortiere jedes Gefäß. Sortierte Reihenfolge durch neinanderreihung der Gefäßinhalte. a wörtlich: Eimer. ucket-sort TU ergakademie Freiberg, WS /

36 lgorithmen und Datenstrukturen Pseudocode Eingabe besteht aus n-elementigem Feld, für die Elemente gilt [i] <. Zwischenspeicher: Hilfsfeld [.. n ] verketteter Listen (Gefäße) a. UCKET-SORT() n length[] for i to n do Füge [i] ein in Liste [ n[i] ] for i to n do Sortiere Liste [i] mit Insertion-Sort Füge die Listen [], [],..., [n ] hintereinander an a Genaueres zu verketteten Listen im nächsten Kapitel. ucket-sort TU ergakademie Freiberg, WS /

37 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

38 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

39 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

40 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

41 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

42 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

43 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

44 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

45 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

46 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

47 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

48 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

49 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

50 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

51 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

52 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

53 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

54 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

55 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

56 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

57 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

58 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

59 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

60 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

61 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

62 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

63 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

64 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

65 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

66 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

67 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

68 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

69 lgorithmen und Datenstrukturen ucket-sort TU ergakademie Freiberg, WS /

70 lgorithmen und Datenstrukturen Korrektheit etrachte zwei Eingabeelemente [i] und [j]. od sei [i] [j]. Wegen n[i] n[j] kommt [i] entweder in dasselbe Gefäß wie [j] oder in eines mit kleinerem Index. Im ersten Fall bringt die lokale Sortierung mit Insertion-Sort diese Elemente in sortierte Reihenfolge. Im zweiten Fall geschieht dies durch die Hintereinanderreihung der Gefäße.. ucket-sort TU ergakademie Freiberg, WS /

71 lgorithmen und Datenstrukturen ufwandsanalyse: eruht darauf, dass in keinem Gefäß allzuviele Elemente landen lle Zeilen des lgorithmus bis auf Zeile (Insertion-Sort) erfordern Laufzeit von Θ(n). Intuitiv: erhält jedes Gefäß O() Elemente, so erfordert das Sortieren jedes Gefäßes O() ufwand, also O(n) für alle Gefäße. Es ist zu erwarten, dass jedes Gefäß wenige Elemente bekommt, da im Mittel nur eines dort landet. ber genaue nalyse hier nötig.. ucket-sort TU ergakademie Freiberg, WS /

72 lgorithmen und Datenstrukturen Wir definieren die Zufallsvariablen n i := # Elemente, die in Gefäß i landen (i =,..., n ). Da Insertion-Sort eine quadratische Laufzeit besitzt, ergibt sich für die Laufzeit T (n) von ucket-sort T (n) = Θ(n) + n i= O(n i ). Mit der Linearität des Erwartungswertes erhalten wir [ E[T (n)] = E Θ(n) + n ] O(n i ) = Θ(n) + n E[O(n i )] = Θ(n) + i= n i= O(E[n i ]). i= (E[aX] = ae[x]) (.). ucket-sort TU ergakademie Freiberg, WS /

73 lgorithmen und Datenstrukturen ehauptung: E[n i ] = /n. eweis: Definiere die Indikatorzufallsvariable X i,j := { falls [j] in Gefäß i landet sonst. ufgrund der Gleichverteilungsannahme gilt Pr({[j] landet in Gefäß i}) = n. Ferner gilt: Somit gilt... n i = n X i,j. j=. ucket-sort TU ergakademie Freiberg, WS /

74 lgorithmen und Datenstrukturen [ ( n ) ] [ n E[n i ] = E X i,j = E j= [ n = E Xi,j + = j= n E[Xi,j] + j= n j= n j= k n k j k n k j j= k= ] n X i,j X i,k X i,j X i,k ] E[X i,j X i,k ]. X ij hat den Wert mit Wahrscheinlichkeit /n und mit Wahrscheinlichkeit /n. Daher folgt E[Xi,j] = ( n + ) = n n.. ucket-sort TU ergakademie Freiberg, WS /

75 lgorithmen und Datenstrukturen Für k j sind die Zufallsvariablen X i,j und X i,k unabhängig. Deshalb ist E[X i,j X i,k ] = E[X i,j ] E[X i,k ] = n n = n. Einsetzen dieser Teilergebnisse liefert E[n i ] = n j= n n + = + n n j= k n k j = n. n = n n + n(n ) n Einsetzen dieses Erwartungswertes in (.) liefert für ucket-sort eine mittlere Laufzeit von Θ(n) + n O( /n) = Θ(n).. ucket-sort TU ergakademie Freiberg, WS /

76 lgorithmen und Datenstrukturen emerkungen:. Wieder kein vergleichendes Sortierverfahren. Hier wurde ein Funktionswert des Schlüssels verwendet, um ein Feld zu adressieren.. Wir haben eine probabilistische nalyse vorgenommen, d.h. mit wahrscheinlichkeitstheoretischen Mitteln einen lgorithmus untersucht, dessen Laufzeit von der Verteilung der Eingabe abhängt.. Gegensatz zu randomisierten lgorithmen, wo wir durch Randomisieren eine Wahrscheinlichkeitsverteilung einbringen.. Ohne die nnahme von gleichverteilten Eingabelementen gilt nicht notwendig lineare Laufzeit.. ucket-sort TU ergakademie Freiberg, WS /

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

Sortieralgorithmen. Jan Pöschko. 18. Januar Problemstellung Definition Warum Sortieren?... 2

Sortieralgorithmen. 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

Mehr

Randomisierte Algorithmen 2. Erste Beispiele

Randomisierte 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

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

Sortierverfahren für Felder (Listen)

Sortierverfahren für Felder (Listen) Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es

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

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum

Mehr

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

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7) Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.rwth-aachen.de/i2/dsal0/ Algorithmus 8. Mai 200 Joost-Pieter

Mehr

2 Sortieren. Beispiel: Es seien n = 8 und a = i : a i : ϕ(i) : a ϕ(i) :

2 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

Mehr

Programmieren I. Kapitel 7. Sortieren und Suchen

Programmieren I. Kapitel 7. Sortieren und Suchen Programmieren I Kapitel 7. Sortieren und Suchen Kapitel 7: Sortieren und Suchen Ziel: Varianten der häufigsten Anwendung kennenlernen Ordnung Suchen lineares Suchen Binärsuche oder Bisektionssuche Sortieren

Mehr

Grundbegriffe der Wahrscheinlichkeitsrechnung

Grundbegriffe der Wahrscheinlichkeitsrechnung Algorithmen und Datenstrukturen 349 A Grundbegriffe der Wahrscheinlichkeitsrechnung Für Entwurf und Analyse randomisierter Algorithmen sind Hilfsmittel aus der Wahrscheinlichkeitsrechnung erforderlich.

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2014/15 3. Vorlesung Laufzeitanalyse Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Recap: Diskutieren Sie mit Ihrer NachbarIn! 1. 2. 3. Was sind

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

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Joost-Pieter Katoen Datenstrukturen und Algorithmen 1/32 Datenstrukturen und Algorithmen Vorlesung 7: Sortieren (K2) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group

Mehr

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 1 für die Übung

Mehr

Algorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier

Algorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier Algorithmen und Datenstrukturen SoSe 2008 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Algorithmen und Datenstrukturen Gesamtübersicht Organisatorisches / Einführung Grundlagen: RAM,

Mehr

Asymptotische Laufzeitanalyse: Beispiel

Asymptotische Laufzeitanalyse: Beispiel Asyptotische Laufzeitanalyse: n = length( A ) A[j] = x GZ Algorithen u. Datenstrukturen 1 31.10.2013 Asyptotische Laufzeitanalyse: n = length( A ) A[j] = x GZ Algorithen u. Datenstrukturen 2 31.10.2013

Mehr

Algorithmen und Datenstrukturen Wintersemester 2004/ November T(n) = T(n a) + T(a) + n

Algorithmen und Datenstrukturen Wintersemester 2004/ November T(n) = T(n a) + T(a) + n Lehrstuhl für Praktische Informatik III Norman May B6, 29, Raum C0.05 68131 Mannheim Telefon: (0621) 181 2517 Email: norman@pi3.informatik.uni-mannheim.de Matthias Brantner B6, 29, Raum C0.05 68131 Mannheim

Mehr

HEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen

HEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen 9.2.5 HUT 9.2.5 3 atenstrukturen im omputer atenstrukturen ie beiden fundamentalen atenstrukturen in der Praxis sind rray und Liste Rekursion Feedback valuation rray Zugriff: schnell Umordnung: langsam

Mehr

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Binäre Suchbäume Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Mengen n Ziel: Aufrechterhalten einer Menge (hier: ganzer Zahlen) unter folgenden Operationen: Mengen n Ziel: Aufrechterhalten einer

Mehr

Grundlagen der Programmierung 2. Sortierverfahren

Grundlagen der Programmierung 2. Sortierverfahren Grundlagen der Programmierung 2 Sortierverfahren Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 30. Mai 2006 Sortieren Ziel: Bringe Folge von Objekten in eine Reihenfolge

Mehr

4.2 Die Chomsky Normalform

4.2 Die Chomsky Normalform 4.2 Die Chomsky Normalform Für algorithmische Problemstellungen (z.b. das Wortproblem) aber auch für den Nachweis von Eigenschaften kontextfreier Sprachen ist es angenehm, von CFG in Normalformen auszugehen.

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 27.10.2011 stefan.klampfl@tugraz.at 1 Wiederholung Wir vergleichen Algorithmen anhand des ordnungsmäßigen Wachstums von T(n), S(n), Asymptotische Schranken: O-Notation:

Mehr

16. All Pairs Shortest Path (ASPS)

16. All Pairs Shortest Path (ASPS) . All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e

Mehr

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)

Mehr

T (n) = max. g(x)=n t(n) S(n) = max. g(x)=n s(n)

T (n) = max. g(x)=n t(n) S(n) = max. g(x)=n s(n) Beim Logarithmischen Kostenmaß wird, im Gegensatz zum EKM, die Stelligkeit der Werte berücksichtigt und mit in die Laufzeit eingerechnet. Beispiel: R1 := R2 (R3), wobei R2 den Wert 5, R3 den Wert 10 und

Mehr

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner Musterlösung Problem : Average-case-Laufzeit vs Worst-case-Laufzeit pt (a) Folgender Algorithmus löst das Problem der

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Prof. r. V. Linnemann Lübeck, den. Oktober 00 Universität zu Lübeck Institut für Informationssysteme lgorithmen und atenstrukturen Sommersemester 00. Klausur Lösungen Hinweis: chten Sie bei Programmieraufgaben

Mehr

Algorithmen & Datenstrukturen 1. Klausur

Algorithmen & Datenstrukturen 1. Klausur Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse

Mehr

10 Dynamische Programmierung

10 Dynamische Programmierung 137 Dynamische Programmierung Das Prinzip der Dynamischen Programmierung wird häufig bei Fragestellungen auf Worten angewendet..1 Längste gemeinsame Teilfolge Wir betrachten Worte der rt w = a 1 a 2 a

Mehr

3.2. Korrektheit und Komplexität am Beispiel: Sortieren Sortieren ist eine wichtige Basis-Operation für komplexe Algorithmen

3.2. Korrektheit und Komplexität am Beispiel: Sortieren Sortieren ist eine wichtige Basis-Operation für komplexe Algorithmen 3.2. Korrektheit und Komplexität am Beispiel: Sortieren Sortieren ist eine wichtige Basis-Operation für komplexe Algorithmen Sortierproblem Eingabe: Folge von n natürlichen Zahlen a 1, a 2,, a n, die Folge

Mehr

Name:... Vorname:... Matrikel-Nr.:... Unterschrift:...

Name:... Vorname:... Matrikel-Nr.:... Unterschrift:... Studiengang Bachelor of Computer Science Modulprüfung Praktische Informatik 1 Wintersemester 2010 / 2011 Name:... Vorname:... Matrikel-Nr.:... Unterschrift:... Hinweise: 1.) Schreiben Sie Ihren Namen und

Mehr

Die mittlere Zeit zum Auffinden eines Elements in einer Hash-Tabelle beträgt, unter realistischen Annahmen, O(1).

Die mittlere Zeit zum Auffinden eines Elements in einer Hash-Tabelle beträgt, unter realistischen Annahmen, O(1). Algorithmen und Datenstrukturen 213 9 Hash-Tabellen Viele Anwendungen erfordern dynamische Mengen, für welche die sog. Wörterbuch-Operationen INSERT, SEARCH und DELETE verfügbar sind. Beispiel: Symboltabelle

Mehr

Übungsblatt 1. f(n) = f(n) = O(g(n)) g(n) = O(f(n)) Zeigen oder widerlegen Sie: 3 n = Θ(2 n ) Aufgabe 1.2 Gegeben sei die folgende Funktion:

Übungsblatt 1. f(n) = f(n) = O(g(n)) g(n) = O(f(n)) Zeigen oder widerlegen Sie: 3 n = Θ(2 n ) Aufgabe 1.2 Gegeben sei die folgende Funktion: Übungsblatt 1 Aufgabe 1.1 Beweisen oder widerlegen Sie, dass für die im Folgenden definierte Funktion f(n) die Beziehung f(n) = Θ(n 4 ) gilt. Beachten Sie, dass zu einem vollständigen Beweis gegebenenfalls

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

Regulär variierende Funktionen

Regulär variierende Funktionen KAPITEL 4 Regulär variierende Funktionen Unser nächstes Ziel ist es, die Max-Anziehungsbereiche der Extremwertverteilungen zu beschreiben. Dies wird im nächsten Kapitel geschehen. Wir haben bereits gesehen,

Mehr

Termine für Übungstests. Kap. 3 Sortieren HeapSort ff Priority Queues. Motivation. Überblick. Analyse SiftDown

Termine für Übungstests. Kap. 3 Sortieren HeapSort ff Priority Queues. Motivation. Überblick. Analyse SiftDown Kap. Sortieren..5 HeapSort ff..6 Priority Queues Professor Dr. Vorlesung am Do 7.5. entfällt wegen FVV um Uhr Lehrstuhl für Algorithm Engineering, LS Fakultät für nformatik, TU Dortmund 7. VO DAP SS 009

Mehr

5 Zwei spieltheoretische Aspekte

5 Zwei spieltheoretische Aspekte 5 Zwei spieltheoretische Aspekte In diesem Kapitel wollen wir uns mit dem algorithmischen Problem beschäftigen, sogenannte Und-Oder-Bäume (kurz UOB) auszuwerten. Sie sind ein Spezialfall von Spielbäumen,

Mehr

Sortieren und Suchen. Kapitel II. Sortieren und Suchen

Sortieren 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

Mehr

Einführung Gruppen, Beispiele, Konjugationsklassen

Einführung Gruppen, Beispiele, Konjugationsklassen Einführung Gruppen, eispiele, Konjugationsklassen Fabian Rühle 21.10.2015 Inhaltsverzeichnis 1 Definition von Gruppen und einfache eispiele 1 2 Die zyklische Gruppe n 2 3 Die Diedergruppe D n 3 4 Die Permutationsgruppe

Mehr

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J Greedy-Strategie Definition Paradigma Greedy Der Greedy-Ansatz verwendet die Strategie 1 Top-down Auswahl: Bestimme in jedem Schritt eine lokal optimale Lösung, so dass man eine global optimale Lösung

Mehr

Randomisierte Algorithmen

Randomisierte Algorithmen Randomisierte Algorithmen Randomisierte Algorithmen 5. Zwei spieltheoretische Aspekte Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2015/2016 1 / 36 Überblick

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Mathematische Grundlagen

Mehr

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

Suchen und Sortieren (Die klassischen Algorithmen)

Suchen und Sortieren (Die klassischen Algorithmen) Suchen und Sortieren (Die klassischen Algorithmen) Lineare Suche und Binäre Suche (Vorbedingung und Komplexität) Sortieralgorithmen (allgemein) Direkte Sortierverfahren (einfach aber langsam) Schnelle

Mehr

Einführung in die Informatik I Kapitel II.3: Sortieren

Einführung in die Informatik I Kapitel II.3: Sortieren 1 Einführung in die Informatik I Kapitel II.3: Sortieren Prof. Dr.-Ing. Marcin Grzegorzek Juniorprofessur für Mustererkennung im Institut für Bildinformatik Department Elektrotechnik und Informatik Fakultät

Mehr

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v) Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der

Mehr

Klausur Datenstrukturen und Algorithmen SoSe 2012

Klausur Datenstrukturen und Algorithmen SoSe 2012 Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Jonathan Heinen, Thomas Ströder, Sabrina von Styp Klausur Datenstrukturen und Algorithmen SoSe 2012 Vorname: Nachname: Studiengang (bitte genau einen

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

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

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2015/16 12. Vorlesung Hashing Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Übungen Begründen Sie grundsätzlich alle Behauptungen außer die Aufgabe

Mehr

1. Grundlagen... 2. 2. Sortieren... 6. 1.1. Vertauschen... 13. 1.2. Selektion... 16. 1.3. Einfügen... 19. 1.4. Quicksort... 22. 3. Suchen...

1. Grundlagen... 2. 2. Sortieren... 6. 1.1. Vertauschen... 13. 1.2. Selektion... 16. 1.3. Einfügen... 19. 1.4. Quicksort... 22. 3. Suchen... Suchen und Sortieren In diesem Kapitel behandeln wir Algorithmen zum Suchen und Sortieren Inhalt 1. Grundlagen... 2 2. Sortieren... 6 1.1. Vertauschen... 13 1.2. Selektion... 16 1.3. Einfügen... 19 1.4.

Mehr

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20. Übersicht Datenstrukturen und Algorithmen Vorlesung 5: (K4) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.informatik.rwth-aachen.de/i2/dsal12/ 20.

Mehr

Informatik II. Sommersemester 2011 IV/X/MMXI, Name:... Matrikelnummer:...

Informatik II. Sommersemester 2011 IV/X/MMXI, Name:... Matrikelnummer:... Prof. G. Zachmann Dipl.-Inf. D. Mohr TU Clausthal Institut für Informatik Klausur zu Informatik II Sommersemester 2011 IV/X/MMXI, 14 00 15 00 Name:......................... Matrikelnummer:.........................

Mehr

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen

Mehr

2 i. i=0. und beweisen Sie mittels eines geeigneten Verfahrens die Korrektheit der geschlossenen Form.

2 i. i=0. und beweisen Sie mittels eines geeigneten Verfahrens die Korrektheit der geschlossenen Form. für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Vollständige Induktion): Finden Sie eine geschlossene Form für die

Mehr

Informatik I 1. Kapitel. Einführung in Algorithmen und Datenstrukturen. Einführung in Algorithmen. Einführung in Algorithmen.

Informatik I 1. Kapitel. Einführung in Algorithmen und Datenstrukturen. Einführung in Algorithmen. Einführung in Algorithmen. Informatik I 1. Kapitel Rainer Schrader Einführung in Algorithmen und Datenstrukturen Zentrum für Angewandte Informatik Köln 16. Juli 008 1 / 1 / 1 Einführung in Algorithmen Einführung in Algorithmen Gliederung

Mehr

Varianz und Kovarianz

Varianz und Kovarianz KAPITEL 9 Varianz und Kovarianz 9.1. Varianz Definition 9.1.1. Sei (Ω, F, P) ein Wahrscheinlichkeitsraum und X : Ω eine Zufallsvariable. Wir benutzen die Notation (1) X L 1, falls E[ X ]

Mehr

Übersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr.

Übersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr. Übersicht Datenstrukturen und Vorlesung 1: Prof. Dr. Erika Ábrahám Theorie Hybrider Systeme Informatik 2 http://ths.rwth-aachen.de/teaching/ss-14/ datenstrukturen-und-algorithmen/ Diese Präsentation verwendet

Mehr

Lösungen zur Klausur GRUNDLAGEN DER WAHRSCHEINLICHKEITSTHEORIE UND STATISTIK

Lösungen zur Klausur GRUNDLAGEN DER WAHRSCHEINLICHKEITSTHEORIE UND STATISTIK Institut für Stochastik Dr. Steffen Winter Lösungen zur Klausur GRUNDLAGEN DER WAHRSCHEINLICHKEITSTHEORIE UND STATISTIK für Studierende der INFORMATIK vom 17. Juli 01 (Dauer: 90 Minuten) Übersicht über

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

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra Effiziente Algorithmen und Datenstrukturen I Kapitel 10: Lineare Algebra Christian Scheideler WS 2008 19.02.2009 Kapitel 10 1 Überblick Notation Arithmetik auf großen Zahlen (Addition und Multiplikation)

Mehr

damit hätten wir nach Ende der Schleife: "a[0 n-1] enthält nur Elemente aus a[0 n-1], aber in sortierter Reihenfolge".

damit hätten wir nach Ende der Schleife: a[0 n-1] enthält nur Elemente aus a[0 n-1], aber in sortierter Reihenfolge. Korrektheit Invariante: a[0 k-1] enthält nur Elemente aus a[0 k-1], aber in sortierter Reihenfolge Terminierung: Die Schleife endet mit k=n def insertionsort(a): for k in range( 1, len(a) ): while i >

Mehr

Untersuchen Sie, inwiefern sich die folgenden Funktionen für die Verwendung als Hashfunktion eignen. Begründen Sie Ihre Antwort.

Untersuchen Sie, inwiefern sich die folgenden Funktionen für die Verwendung als Hashfunktion eignen. Begründen Sie Ihre Antwort. Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe 1 (Güte von Hashfunktionen): Untersuchen Sie, inwiefern sich die folgenden Funktionen

Mehr

Klausur Informatik B April Teil I: Informatik 3

Klausur Informatik B April Teil I: Informatik 3 Informatik 3 Seite 1 von 8 Klausur Informatik B April 1998 Teil I: Informatik 3 Informatik 3 Seite 2 von 8 Aufgabe 1: Fragekatalog (gesamt 5 ) Beantworten Sie folgende Fragen kurz in ein oder zwei Sätzen.

Mehr

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016 und Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016 25. April 2016 Die Dimensionsformel Definition 3.9 Sei f : V W eine lineare Abbildung zwischen zwei K-Vektorräumen. Der Kern

Mehr

MATHEMATISCHE ANALYSE VON ALGORITHMEN

MATHEMATISCHE ANALYSE VON ALGORITHMEN MATHEMATISCHE ANALYSE VON ALGORITHMEN Michael Drmota Institut für Diskrete Mathematik und Geometrie, TU Wien michael.drmota@tuwien.ac.at www.dmg.tuwien.ac.at/drmota/ Ringvorlesung SS 2008, TU Wien Algorithmus

Mehr

Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6

Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6 Robert Elsässer u.v.a. Paderborn, 29. Mai 2008 Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6 Aufgabe 1 (6 Punkte): Zunächst sollte klar sein, daß ein vollständiger Binärer

Mehr

Fortgeschrittene Programmiertechnik Klausur SS 2015 Angewandte Informatik Bachelor

Fortgeschrittene Programmiertechnik Klausur SS 2015 Angewandte Informatik Bachelor Fortgeschrittene Programmiertechnik Klausur SS 2015 Angewandte Informatik Bachelor Name Matrikelnummer Aufgabe Punkte Aufgabe Punkte Zwischensumme 1 6 2 8 3 12 4 18 5 20 64 6 9 7 17 8 18 9 12 Summe 120

Mehr

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 13./14. VO DAP2 SS 2009 2./4. Juni 2009 1 2. Übungstest

Mehr

Algorithmentheorie Randomisierung. Robert Elsässer

Algorithmentheorie Randomisierung. Robert Elsässer Algorithmentheorie 03 - Randomisierung Robert Elsässer Randomisierung Klassen von randomisierten Algorithmen Randomisierter Quicksort Randomisierter Primzahltest Kryptographie 2 1. Klassen von randomisierten

Mehr

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen Kapitel 9 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

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden

Mehr

Abschnitt: Algorithmendesign und Laufzeitanalyse

Abschnitt: 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

Mehr

Beispiellösung zur Prüfung Datenstrukturen und Algorithmen D-INFK

Beispiellösung zur Prüfung Datenstrukturen und Algorithmen D-INFK Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik Peter Widmayer

Mehr

Streaming Data: Das Modell

Streaming Data: Das Modell Streaming Data: Das Modell Berechnungen, bei fortlaufend einströmenden Daten (x t t 0), sind in Echtzeit zu erbringen. Beispiele sind: - Verkehrsmessungen im Internet, - Datenanalyse in der Abwehr einer

Mehr

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter

Mehr

2. Übungsblatt zu Algorithmen II im WS 2016/2017

2. Übungsblatt zu Algorithmen II im WS 2016/2017 Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter Sanders Dr. Christian Schulz, Dr. Simon Gog Michael Axtmann. Übungsblatt zu Algorithmen II im WS 016/017 Aufgabe

Mehr

Ideen der Informatik Suchen und Sortieren [Ordnung muss sein ] Kurt Mehlhorn Adrian Neumann viele Folien von Kostas Panagiotou

Ideen der Informatik Suchen und Sortieren [Ordnung muss sein ] Kurt Mehlhorn Adrian Neumann viele Folien von Kostas Panagiotou Ideen der Informatik Suchen und Sortieren [Ordnung muss sein ] Kurt Mehlhorn Adrian Neumann viele Folien von Kostas Panagiotou Suchen Welche Telefonnummer hat Kurt Mehlhorn? Wie schreibt man das Wort Equivalenz?

Mehr

Klausur zur Vorlesung,,Algorithmische Mathematik II

Klausur zur Vorlesung,,Algorithmische Mathematik II Institut für angewandte Mathematik, Institut für numerische Simulation Sommersemester 2015 Prof. Dr. Anton Bovier, Prof. Dr. Martin Rumpf Klausur zur Vorlesung,,Algorithmische Mathematik II Bitte diese

Mehr

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS Julian Arz, Timo Bingmann, Sebastian Schlag INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Julian Universität Arz, des Timo LandesBingmann, Baden-Württemberg Sebastian und Schlag nationales

Mehr

Programmiertechnik II

Programmiertechnik 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

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum

Mehr

3. Kombinatorik und Wahrscheinlichkeit

3. 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:

Mehr

Kapitel 3. Natürliche Zahlen und vollständige Induktion

Kapitel 3. Natürliche Zahlen und vollständige Induktion Kapitel 3 Natürliche Zahlen und vollständige Induktion In Kapitel 1 haben wir den direkten Beweis, den modus ponens, kennen gelernt, der durch die Tautologie ( A (A = B) ) = B gegeben ist Dabei war B eine

Mehr

5 Optimale erwartungstreue Schätzer

5 Optimale erwartungstreue Schätzer 33 5 Optimale erwartungstreue Schätzer 5.1 Definition Seien X 1,..., X n reelle Zufallsvariablen, T T (X 1,..., X n ) reellwertige Statistik. T heißt linear : c 1,..., c n R mit T n c j X j 5.2 Satz Seien

Mehr

Suchen. lineare Suche, binäre Suche, divide and conquer, rekursive und iterative Algorithmen, geordnete Daten, Comparable

Suchen. lineare Suche, binäre Suche, divide and conquer, rekursive und iterative Algorithmen, geordnete Daten, Comparable Suchen lineare Suche, binäre Suche, divide and conquer, rekursive und iterative Algorithmen, geordnete Daten, Comparable Welche Nummer hat Herr Meier? Enthält Einträge (Elemente) der Form : Name, Vorname

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Einführung in die Vektor- und Matrizenrechnung. Matrizen

Einführung in die Vektor- und Matrizenrechnung. Matrizen Einführung in die Vektor- und Matrizenrechnung Matrizen Definition einer Matrix Unter einer (reellen) m x n Matrix A versteht man ein rechteckiges Schema aus reellen Zahlen, die wie folgt angeordnet sind:

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 5. Vorlesung Martin Middendorf / Peter F. Stadler Universität Leipzig Institut für Informatik middendorf@informatik.uni-leipzig.de studla@bioinf.uni-leipzig.de Quick-Sort

Mehr

3: Zahlentheorie / Primzahlen

3: Zahlentheorie / Primzahlen Stefan Lucks Diskrete Strukturen (WS 2009/10) 96 3: Zahlentheorie / Primzahlen 3: Zahlentheorie / Primzahlen Stefan Lucks Diskrete Strukturen (WS 2009/10) 97 Definition 37 (Teiler, Vielfache, Primzahlen,

Mehr

Domain-independent. independent Duplicate Detection. Vortrag von Marko Pilop & Jens Kleine. SE Data Cleansing

Domain-independent. independent Duplicate Detection. Vortrag von Marko Pilop & Jens Kleine. SE Data Cleansing SE Data Cleansing Domain-independent independent Duplicate Detection Vortrag von Marko Pilop & Jens Kleine http://www.informatik.hu-berlin.de/~pilop/didd.pdf {pilop jkleine}@informatik.hu-berlin.de 1.0

Mehr

TU Darmstadt FB Mathematik, AG 9 WS 2004/2005 Jakob Creutzig (1 + ρ)

TU Darmstadt FB Mathematik, AG 9 WS 2004/2005 Jakob Creutzig (1 + ρ) TU Darmstadt FB Mathematik, AG 9 WS 2004/2005 Jakob Creutzig 9..04 Lösungsvorschläge zum 3. Aufgabenblatt der Vorlesung,,Einführung in die Finanzmathematik Gruppenübungen Aufgabe : Es sei Ω = {, +} n,

Mehr

Lösungen zur Klausur WAHRSCHEINLICHKEITSTHEORIE UND STATISTIK (STOCHASTIK)

Lösungen zur Klausur WAHRSCHEINLICHKEITSTHEORIE UND STATISTIK (STOCHASTIK) Institut für Stochastik Dr. Steffen Winter Lösungen zur Klausur WAHRSCHEINLICHKEITSTHEORIE UND STATISTIK (STOCHASTIK) für Studierende des Maschinenbaus vom 7. Juli (Dauer: 8 Minuten) Übersicht über die

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

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Name: Seite 2 Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Aufgabe 1 (8 Punkte) 1. Wie viele negative Zahlen (ohne 0) lassen sich im 4-Bit-Zweierkomplement darstellen?

Mehr

Doz. Dr. H.P. Scheffler Sommer 2000 Klausur zur Vorlesung Stochastik I

Doz. Dr. H.P. Scheffler Sommer 2000 Klausur zur Vorlesung Stochastik I Doz. Dr. H.P. Scheffler Sommer 2000 Klausur zur Vorlesung Stochastik I Wählen Sie aus den folgenden sechs Aufgaben fünf Aufgaben aus. Die maximal erreichbare Punktezahl finden Sie neben jeder Aufgabe.

Mehr

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume

Mehr

3.3 Methoden zur Evaluierung von Schätzern

3.3 Methoden zur Evaluierung von Schätzern 3.3 Methoden zur Evaluierung von Schätzern Bis jetzt haben wir nur glaubwürdige Techniken zur Konstruktion von Punktschätzern besprochen. Falls unterschiedliche Schätzer für einen Parameter resultieren,

Mehr

EndTermTest PROGALGO WS1516 A

EndTermTest PROGALGO WS1516 A EndTermTest PROGALGO WS1516 A 14.1.2016 Name:................. UID:.................. PC-Nr:................ Beachten Sie: Lesen Sie erst die Angaben aufmerksam, genau und vollständig. Die Verwendung von

Mehr