Algorithmen und Datenstrukturen 1-3. Seminar -

Größe: px
Ab Seite anzeigen:

Download "Algorithmen und Datenstrukturen 1-3. Seminar -"

Transkript

1 Algorithmen und Datenstrukturen 1-3. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Wintersemester 2009/10

2 Outline Spezielle Listen: Stacks, Queues Sortierverfahren 3. Übungsserie

3 Wiederholung: Stacks Synonyme: Stapel, Keller, LIFO-Liste,... Spezielle Liste, bei der alle Einfügungen und Löschungen nur an einem Ende, TOP genannt, vorgenommen werden.

4 Wiederholung: Stacks Stack-Operationen (ADT): 1. CREATE: Erzeugt den leeren Stack 2. INIT(S): Initialisiert S als leeren Stack 3. PUSH(S, x): Fügt das Element x als oberstes Element von S ein 4. POP(S): Löschen des Elementes, das als letztes in den Stack S eingefügt wurde 5. TOP(S): Abfragen des Elementes, das als letztes in den Stack S eingefügt wurde 6. EMPTY(S): Abfragen, ob der Stack S leer ist Alle Operationen benötigen nur konstante Kosten: O(1)

5 Anwendung: Wiederholung: Stacks Wohlgeformte Klammerausdrücke (Vorlesung) Tower-of-Hanoi Problem Gegeben: 3 Türme, n Scheiben Ziel: Alle Scheiben von Turm A nach Turm C versetzen Bedingung: Scheiben sind zu jedem Zeitpunkt der Größe nach geordnet, Größere darf nie auf Kleineren liegen.

6 Wiederholung: Queues Synonyme: FIFO-Schlange, Warteschlange Spezielle Liste, Elemente werden an einem Ende (hinten) eingefügt und am anderen Ende (vorne) entfernt.

7 Wiederholung: Queues Queue-Operationen (ADT): 1. CREATE: Erzeugt die leere Schlange 2. INIT (Q): Initialisiert Q als leere Schlange 3. ENQUEUE (Q, x): Fügt das Element x am Ende der Schlange Q ein 4. DEQUEUE (Q): Löschen des Elementes, das am längsten in der Schlange verweilt (erstes Element) 5. FRONT (Q): Abfragen des ersten Elementes in der Schlange 6. EMPTY (Q): Abfragen, ob die Schlange leer ist Beispiel: Q = [a, b, c] ENQUEUE(Q, d) Q = [a, b, c, d] DEQUEUE(Q) Q = [b, c, d]

8 Wiederholung: Sortieren

9 Selection-Sort - Algorithmus 1. Start: Unsortierte Teilliste (UT) ist die ganze Liste 2. WHILE( Liste UT enthält mehr als ein Element ): 3. Auswahl des kleinsten Elementes x in UT 4. Austausch von x mit dem ersten Element von UT 5. Reduziere UT um dieses Element ENDWHILE

10 Beispiel: [8, 2, 5, 3, 7, 1, 6, 4] Selection-Sort - Beispiel

11 Selection-Sort - Beispiel Beispiel: [8, 2, 5, 3, 7, 1, 6, 4] 1. 8, 2, 5, 3, 7, 1, 6, 4 SCHWARZ: Unsortierte Teilliste 2. 1, 2, 5, 3, 7, 8, 6, 4 ROT: Sortierte Teilliste 3. 1, 2, 5, 3, 7, 8, 6, , 2, 3, 5, 7, 8, 6, , 2, 3, 5, 7, 8, 6, , 2, 3, 4, 7, 8, 6, , 2, 3, 4, 5, 8, 6, , 2, 3, 4, 5, 6, 8, , 2, 3, 4, 5, 6, 7, , 2, 3, 4, 5, 6, 7, 8

12 Bubble-Sort - Algorithmus Vertauschungen = true while( Vertauschungen ) Vertauschungen = false for i=1.. n-1 if ( A(i) > A(i+1) ) exchange A(i) and A(i+1); Vertauschungen = true

13 Beispiel: [55, 7, 78, 12, 42] Bubble-Sort - Beispiel

14 Beispiel: [55, 7, 78, 12, 42] Bubble-Sort - Beispiel

15 Insertion-Sort - Algorithmus Idee: i-tes Element, x, der Liste (1. Element der unsortierten Teilliste) wird an der richtigen Stelle der bereits sortierten Teilliste (1 bis i 1) eingefügt Elemente in sortierter Teilliste mit höherem Schlüsselwert als x werden verschoben Algorithmus: for(i=2.. n) temp = A[i]; j = i-1; //Fge A[i] in die sortierte Folge A[1.. i-1] while ( j>0 and A[j] > temp ) A[j+1] = A[j]; j--; A[j+1] = temp;

16 Insertion-Sort - Beispiel Beispiel: [5, 2, 4, 6, 1, 3]

17 Insertion-Sort - Beispiel Beispiel: [5, 2, 4, 6, 1, 3]

18 Shell-Sort - Algorithmus Weiterentwicklung von Insertion-Sort. Versucht Nachteil von IS auszugleichen, dass Elemente in der Sequenz oft über weite Strecken verschoben werden (u.u. ineffizient). Sortierung in mehreren Stufen von grob bis fein Vorsortierung reduziert Anzahl von Tauschvorgängen Realisierung über Hilfsmatrizen

19 Shell-Sort - Beispiel Beispiel: [2, 5, 3, 4, 3, 9, 3, 2, 5, 4, 1, 3], mittels 4-, 2-, 1-Folge.

20 Shell-Sort - Beispiel Beispiel: [2, 5, 3, 4, 3, 9, 3, 2, 5, 4, 1, 3], mittels 4-, 2-, 1-Folge. Vorgehen: Matrix erstellen, Spalten sortieren, Insertion-Sort

21 Quick-Sort - Idee Prinzip: Teile und Herrsche / Divide and Conquer Partitioniere zu sortierenden bereich in 2 Hälften, links nur Schlüssel < Pivot-ELement, rechts alles >= Pivot-Element. Sortiere Teilhälften in gleicher Weise

22 Quick-Sort - Pseudo-Code

23 Quick-Sort - Beispiel

24 Quick-Sort - Anmerkungen Bestimmung des Pivot-Elements Möglichst nahe am Median der sortierten Liste Ideal: Liste wird in zwei gleichlange Teillisten zerlegt Oft: Einfach linkes bzw. rechtes Element Übliches Verfahren zum Zerlegen der Liste: 2 Zeiger i und j, i beginnt von links, j von rechts Bis i > j (sich also i und j kreuzen) i solange erhöhen, bis Wert p gefunden j solange erniedrigen, bis Wert <p gefunden Falls i < j, L [i] und L [j] austauschen benötigt keinen zusätzlichen Speicherplatz Listengrenzen l und r werden beim Aufruf von Quicksort übergeben

25 Quick-Sort - Algorithmus Algorithmus qsort(a,l,r) sortiert A[l..r]: i=l; j=r // Initialisieren: if(r<=l) return // Fertig? piv = A[(l+r)/2] // Pivot-Element do // Schleife while(a[i]<piv) i++ // Links suchen while(a[j]>piv) j-- // Rechts suchen if(i<=j) exchange(a[i],a[j]) i++; j-- while (i<=j) // Schleifenende qsort(a,l,j) // Rekursiver Aufruf qsort(a,i,r)

26 Beispiel: [3, 2, 5, 6, 4] Quick-Sort - Beispiel i=l; j=r // Initialisieren: if(r<=l) return // Fertig? piv = A[(l+r)/2] // Pivot-Element do // Schleife while(a[i]<piv) i++ // Links suchen while(a[j]>piv) j-- // Rechts suchen if(i<=j) exchange(a[i],a[j]) i++; j-- while (i<=j) // Schleifenende qsort(a,l,j) // Rekursiver Aufruf qsort(a,i,r)

27 Heap-Sort - Idea

28 Heap-Sort - Idea

29 Heap-Sort - Idea

30 Heap-Sort - Beispiel In-place Realisierung, im Array: n 2n, 2n + 1 index Beispiel Heap-Eigenschaft von A[0] bis A [n/2] herstellen tausche A [0] mit A [n] Wiederherstellen der Heap-Eigenschaft, tauschen,...

31 Merge-Sort

32 Merge-Sort

33 Laufzeiten Einfache Verfahren Höhere Verfahren Einfügen Insertion-Sort O(n 2 ) Shell-Sort O(n 1.2 ) Auswählen Selection-Sort O(n 2 ) Heap-Sort O(nlog 2 (n)) Austauschen Bubble-Sort O(n 2 ) Quick-Sort O(nlog 2 (n))

34 3. Übungsserie 4 Aufgaben, insgesamt 35 Punkte A09 Stack-Sort, Pseudo-Code ergänzen, analysieren (12 Punkte) A10 Selection-/Insertion-/Bubble-Sort (9 Punkte) A11 Fragen zu Sortier-Algorithmen (5 Punkte) A12 Stacks, Queues, Pseudo-Code: WUSEL (9 Punkte)

35 Aufgabe 9 Beim Umzug eines Informatik-Instituts ist eines der Programme beschädigt worden. Glücklicherweise ist nur an einer Stelle (...) der Ausdruck für eine Bedingung verlorengangen: INIT(S), i=0 Solange (i<laenge(l)) { Solange ((nicht EMPTY(S)) und (...)) { Ausgabe(TOP(S)), POP(S) } PUSH(S,L[i]) i=i+1 } Solange (nicht EMPTY(S)) { Ausgabe(TOP(S), POP(S)) } Ende

36 Aufgabe 9 - Lösung (a) Welche Bedingung steht sinnvollerweise statt..., damit das Programm die Elemente aus der Eingabe möglichst gut in aufsteigender Reihenfolge sortiert ausgibt? Insbesondere soll das reparierte Programm bei Eingabe von (5,4,3,2,1) als Ausgabe (1,2,3,4,5) liefern. Auf (1,5,4,3,2,6) soll mit (1,2,3,4,5,6) geantwortet werden. Zeigen Sie, wie das reparierte Programm auf diesen zwei Beispielen arbeitet, indem Sie den Stapel direkt vor und direkt nach jedem PUSH explizit angeben. (6 Punkte)

37 Aufgabe 9 - Lösung (a) Welche Bedingung steht sinnvollerweise statt..., damit das Programm die Elemente aus der Eingabe möglichst gut in aufsteigender Reihenfolge sortiert ausgibt? Insbesondere soll das reparierte Programm bei Eingabe von (5,4,3,2,1) als Ausgabe (1,2,3,4,5) liefern. Auf (1,5,4,3,2,6) soll mit (1,2,3,4,5,6) geantwortet werden. Zeigen Sie, wie das reparierte Programm auf diesen zwei Beispielen arbeitet, indem Sie den Stapel direkt vor und direkt nach jedem PUSH explizit angeben. (6 Punkte) Bedingung? (1 Punkt) Eingabe (5,4,3,2,1)? (2 Punkt) Eingabe (1,5,4,3,2,6)? (3 Punkte)

38 Aufgabe 9 - Lösung INIT(S), i=0 Solange (i<laenge(l)) { Solange ((nicht EMPTY(S)) und (TOP(S)<=L[i])) { Ausgabe(TOP(S)), POP(S) } PUSH(S,L[i]) i=i+1 } Solange (nicht EMPTY(S)) { Ausgabe(TOP(S), POP(S)) } Ende

39 Aufgabe 9 - Lösung Eingabe (5,4,3,2,1)? Angabe des Stapels direkt vor und nach jedem PUSH?

40 Aufgabe 9 - Lösung Eingabe (5,4,3,2,1)? Angabe des Stapels direkt vor und nach jedem PUSH? i Ausgaben Push 0 [] [5] 1 [5] [5, 4] 2 [5, 4] [5, 4, 3] 3 [5, 4, 3] [5, 4, 3, 2] 4 [5, 4, 3, 2] [5, 4, 3, 2, 1] 5 1,..., 5

41 Aufgabe 9 - Lösung Eingabe (1,5,4,3,2,6)? Angabe des Stapels direkt vor und nach jedem PUSH?

42 Aufgabe 9 - Lösung Eingabe (1,5,4,3,2,6)? Angabe des Stapels direkt vor und nach jedem PUSH? i Ausgaben Push 0 [] [1] 1 1 [] [5] 2 [5] [5, 4] 3 [5, 4] [5, 4, 3] 4 [5, 4, 3] [5, 4, 3, 2] 5 2,..., 5 [] [6] 6 6

43 Aufgabe 9 - Lösung (b) Begründen Sie kurz, dass die Laufzeit des Programms in O(n) liegt, wobei die Problemgröße n = Laenge(L) ist. Wieso kann man bereits an dieser Abschätzung des Laufzeitverhaltens erkennen, dass es Eingabelisten gibt, die vom Programm nicht korrekt sortiert ausgegeben werden? (4 Punkte)

44 Aufgabe 9 - Lösung Da i in jeder Iteration um 1 erhöht wird werden n=laenge(l) Iterationen ausgeführt. Pro Iteration werden zumindest folgende Operationen ausgeführt: Test auf Listenende O(1) mindestens Test ob Stack leer und Schlüsselvergleich O(1) PUSH() O(1) i=i+1 O(1) Für jedes Element wird genau einmal PUSH aufgerufen. Spätestens am Ende der Schleife werde alle Elemente vom Stack entfernt. Also wird für jedes Element zusätzlich einmal AUSGABE(TOP(S)) und einmal POP(S) ausgerufen sowie die Schleifenabbruchtests ausgeführt. All diese Operationen sind in O(1). O(n) Sortieren auf der Basis von Schlüsselvergleichen benötigt mindestens Ω(n log n).

45 Aufgabe 9 - Lösung (c) Geben Sie eine möglichst kurze Liste an, die vom Programm nicht korrekt sortiert wird. (2 Punkte)

46 Aufgabe 9 - Lösung (c) Geben Sie eine möglichst kurze Liste an, die vom Programm nicht korrekt sortiert wird. (2 Punkte) (2 3 1)

47 Aufgabe 10 - Lösung Verwenden Sie Selection-Sort, Insertion-Sort und Bubble-Sort mit Abbruchkontrolle, um die folgende Liste zu sortieren: (1, 6, 3, 8, 4, 2, 9, 5). Geben Sie jeweils nach Beendigung der inneren Schleife die aktuelle Liste und die Anzahl der bis dahin stattgefundenen Schlüsselvergleiche an. (3x3 Punkte)

48 Selection Sort...nach Ende der inneren Schleife... for i=1... n-1 min = i for j=i+1 bis n if (A(j) < A(min)) min = j -->> exchange A(i) and A(min)

49 Aufgabe 10 - Lösung Gegeben: (1, 6, 3, 8, 4, 2, 9, 5) Selection Sort (ˆx: akt. Element; ˇy: bestimmtes Minimum): (ˆ1, ˇ 6, 3, 8, 4, 2, 9, 5) 7 7 (1, ˆ6, 3, 8, 4, ˇ2, 9, 5) 6 13 (1, 2, ˇˆ3, 8, 4, 6, 9, 5) 5 18 (1, 2, 3, ˆ8, ˇ4, 6, 9, 5) 4 22 (1, 2, 3, 4, ˆ8, 6, 9, ˇ5) 3 25 (1, 2, 3, 4, 5, ˇˆ6, 9, 8) 2 27 (1, 2, 3, 4, 5, 6, ˆ9, ˇ8) 1 28

50 Aufgabe 10 - Lösung Gegeben: (1, 6, 3, 8, 4, 2, 9, 5) Insertion Sort: (1, 6, 3, 8, 4, 2, 9, 5) 1 1 (1, 6, 6, 8, 4, 2, 9, 5) 2 3 (1, 3, 6, 8, 4, 2, 9, 5) 1 4 (1, 3, 6, 6, 8, 2, 9, 5) 3 7 (1, 3, 3, 4, 6, 8, 9, 5) 5 12 (1, 2, 3, 4, 6, 8, 9, 5) 1 13 (1, 2, 3, 4, 6, 6, 8, 9) 4 17

51 Aufgabe 10 - Lösung Gegeben: (1, 6, 3, 8, 4, 2, 9, 5) Bubble Sort: 1. (1, 3, 6, 4, 2, 8, 5, 9) (1, 3, 4, 2, 6, 5, 8, 9) (1, 3, 2, 4, 5, 6, 8, 9) (1, 2, 3, 4, 5, 6, 8, 9) (1, 2, 3, 4, 5, 6, 8, 9) 3 25

52 Aufgabe 11 - Lösung Welche der folgenden Aussagen treffen zu? Begründen Sie Ihre Aussage. (a) Es gibt Fälle, in denen die Laufzeit von Quick-Sort in O(n 2 ) ist. (b) Es gibt Fälle, in denen die Laufzeit von Quick-Sort in O(n) ist. (c) Es gibt Fälle, in denen die Laufzeit von Merge-Sort in O(n 2 ) ist. (d) Insertion-Sort kann in O(n) laufen. (e) Selection-Sort kann in O(n) laufen. (5 Punkte)

53 Aufgabe 11 - Lösung (a) Es gibt Fälle, in denen die Laufzeit von Quick-Sort in O(n 2 ) ist

54 Aufgabe 11 - Lösung (a) Es gibt Fälle, in denen die Laufzeit von Quick-Sort in O(n 2 ) ist Ja, z.b. eine vorsortierte Liste [1,2,3,4,5,6,7,8] und Pivotelement immer das erste Element.

55 Aufgabe 11 - Lösung (a) Es gibt Fälle, in denen die Laufzeit von Quick-Sort in O(n 2 ) ist Ja, z.b. eine vorsortierte Liste [1,2,3,4,5,6,7,8] und Pivotelement immer das erste Element. (b) Es gibt Fälle, in denen die Laufzeit von Quick-Sort in O(n) ist.

56 Aufgabe 11 - Lösung (a) Es gibt Fälle, in denen die Laufzeit von Quick-Sort in O(n 2 ) ist Ja, z.b. eine vorsortierte Liste [1,2,3,4,5,6,7,8] und Pivotelement immer das erste Element. (b) Es gibt Fälle, in denen die Laufzeit von Quick-Sort in O(n) ist. Nein. Untere Grenze für Quick-Sort ist O(nlogn).

57 Aufgabe 11 - Lösung (a) Es gibt Fälle, in denen die Laufzeit von Quick-Sort in O(n 2 ) ist Ja, z.b. eine vorsortierte Liste [1,2,3,4,5,6,7,8] und Pivotelement immer das erste Element. (b) Es gibt Fälle, in denen die Laufzeit von Quick-Sort in O(n) ist. Nein. Untere Grenze für Quick-Sort ist O(nlogn). (c) Es gibt Fälle, in denen die Laufzeit von MergeSort in O(n 2 ) ist.

58 Aufgabe 11 - Lösung (a) Es gibt Fälle, in denen die Laufzeit von Quick-Sort in O(n 2 ) ist Ja, z.b. eine vorsortierte Liste [1,2,3,4,5,6,7,8] und Pivotelement immer das erste Element. (b) Es gibt Fälle, in denen die Laufzeit von Quick-Sort in O(n) ist. Nein. Untere Grenze für Quick-Sort ist O(nlogn). (c) Es gibt Fälle, in denen die Laufzeit von MergeSort in O(n 2 ) ist. Nein. Merge-Sort ist stabil bezüglich der Laufzeit. Liegt also immer in O(nlogn).

59 Aufgabe 11 - Lösung (d) Insertion-Sort kann in O(n) laufen.

60 Aufgabe 11 - Lösung (d) Insertion-Sort kann in O(n) laufen. Ja, z.b. eine vorsortiertes Array [1,2,3,4,5,6,7,8]. Dann wird jedes Element nur einmal verglichen (nämlich mit dem letzten Element des bereits sortierten Teils des Arrays) und dahinter eingefügt. Insgesamt: lineare Laufzeit. (e) Selection-Sort kann in O(n) laufen.

61 Aufgabe 11 - Lösung (d) Insertion-Sort kann in O(n) laufen. Ja, z.b. eine vorsortiertes Array [1,2,3,4,5,6,7,8]. Dann wird jedes Element nur einmal verglichen (nämlich mit dem letzten Element des bereits sortierten Teils des Arrays) und dahinter eingefügt. Insgesamt: lineare Laufzeit. (e) Selection-Sort kann in O(n) laufen. Nein. Denn es muss in jedem Durchgang das Minimum gesucht werden. Dies hat auch bei einer z.b. vorsortierten Liste lineare Laufzeit (der Algorithmus berücksichtigt Vorsortierung nicht). Man braucht außerdem n Durchläufe, was zu einer (stabilen) Laufzeit in O(n 2 ) führt.

62 Aufgabe 12 Das Programm WUSEL simuliert folgenden Prozess. Studierende, die jeder einen mit ihrem Namen versehenen Zettel auf einen Stapel S gelegt haben, versuchen, ihren jeweiligen Zettel wiederzufinden. Dazu stellen sie sich in einer Schlange Q an. Die/der jeweils vorderste Studierende schaut nach, ob der oberste Zettel des Stapels ihrer/seiner ist. Falls ja, wird der Zettel vom Stapel genommen und der/die Studierende verl a st die Schlange. Ansonsten bleibt der Stapel unver andert, und die/der Studierende stellt sich hinten wieder an. Dies wird iteriert, bis entweder der Stapel oder die Schlange leer sind. Das Programm sieht so aus:

63 Aufgabe 12 WUSEL(stack S, queue Q) { Solange (nicht EMPTY(S) und nicht EMPTY(Q)): { Falls (TOP(S) == FRONT(Q)) POP(S) Sonst ENQUEUE(Q,FRONT(Q)) } DEQUEUE(Q) } ENDE

64 Aufgabe 12 - Lösung (a) Welche notwendige und hinreichende Bedingung müssen S and Q beim Aufruf von WUSEL erfüllen, damit das Programm terminiert, also der Befehl ENDE irgendwann erreicht wird? (2 Punkte)

65 Aufgabe 12 - Lösung (a) Welche notwendige und hinreichende Bedingung müssen S and Q beim Aufruf von WUSEL erfüllen, damit das Programm terminiert, also der Befehl ENDE irgendwann erreicht wird? (2 Punkte) Die Schlüsselmenge von S muss in der Schluesselmenge von Q enthalten sein oder umgekehrt (zusätzlich Spezialfälle berücksichtigen, um z.b. den Stack leer zu bekommen: Alle Aufgabenzettel, zu denen es keine Studenten gibt, müssen unten im Stack liegen, also unter den Aufgaben, zu denen es Studenten gibt).

66 Aufgabe 12 - Lösung (b) Betrachten Sie ab jetzt nur noch Instanzen, bei denen das Programm terminiert. Geben Sie eine exakte Schranke Θ(... ) für die Laufzeit im worst case von WUSEL als Funktion der Problemgröße n an. Hierbei sei n = S + Q die Summe der Zahlen der Elemente in S und Q bei Aufruf. Begründen Sie Ihre Antwort. (3 Punkte)

67 Aufgabe 12 - Lösung (b) Betrachten Sie ab jetzt nur noch Instanzen, bei denen das Programm terminiert. Geben Sie eine exakte Schranke Θ(... ) für die Laufzeit im worst case von WUSEL als Funktion der Problemgröße n an. Hierbei sei n = S + Q die Summe der Zahlen der Elemente in S und Q bei Aufruf. Begründen Sie Ihre Antwort. (3 Punkte) Θ(n 2 ), evtl weil T (n) c n(n 1)/2 + const

68 Aufgabe 12 - Lösung (c) Nun sei bei Aufruf Q = [1, 2, 3, 4, 5]. S enthalte dieselben Elemente wie Q. Geben Sie eine Startreihenfolge der Elemente in S an, so dass WUSEL (i) möglichst wenige und (ii) möglichst viele Schleifendurchläufe braucht. Geben Sie in beiden Fällen die Anzahl der Durchläufe an. (4 Punkte)

69 Aufgabe 12 - Lösung (c) Nun sei bei Aufruf Q = [1, 2, 3, 4, 5]. S enthalte dieselben Elemente wie Q. Geben Sie eine Startreihenfolge der Elemente in S an, so dass WUSEL (i) möglichst wenige und (ii) möglichst viele Schleifendurchläufe braucht. Geben Sie in beiden Fällen die Anzahl der Durchläufe an. (4 Punkte) (i) 5,4,3,2,1 5 Durchläufe S und Q vor Begin der i-ten Schleife i S Q 1 [1,2,3,4,5] [5,4,3,2,1] 2 [1,2,3,4] [4,3,2,1] 3 [1,2,3] [3,2,1] 4 [1,2] [2,1] 5 [1] [1]

70 Aufgabe 12 - Lösung (ii) 1,2,3,4,5 15 Durchläufe, S und Q vor Begin der i-ten Schleife: i S Q 1 [1,2,3,4,5] [1,2,3,4,5] 2 [1,2,3,4,5] [2,3,4,5,1] 3 [1,2,3,4,5] [3,4,5,1,2] 4 [1,2,3,4,5] [4,5,1,2,3] 5 [1,2,3,4,5] [5,1,2,3,4] 6 [1,2,3,4] [1,2,3,4] 7 [1,2,3,4] [2,3,4,1] 8 [1,2,3,4] [3,4,1,2] 9 [1,2,3,4] [4,1,2,3] 10 [1,2,3] [1,2,3] 11 [1,2,3] [2,3,1] 12 [1,2,3] [3,1,2] 13 [1,2] [1,2] 14 [1,2] [2,1] 15 [1] [1]

Algorithmen und Datenstrukturen 1

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

Mehr

Übung: Algorithmen und Datenstrukturen SS 2007

Übung: Algorithmen und Datenstrukturen SS 2007 Übung: Algorithmen und Datenstrukturen SS 2007 Prof. Lengauer Sven Apel, Michael Claÿen, Christoph Zengler, Christof König Blatt 5 Votierung in der Woche vom 04.06.0708.06.07 Aufgabe 12 Manuelle Sortierung

Mehr

Algorithmen I. Tutorium 1-3. Sitzung. Dennis Felsing

Algorithmen I. Tutorium 1-3. Sitzung. Dennis Felsing Algorithmen I Tutorium 1-3. Sitzung Dennis Felsing dennis.felsing@student.kit.edu www.stud.uni-karlsruhe.de/~ubcqr/algo 2011-05-02 Überblick 1 Sortieren und Suchen 2 Mastertheorem 3 Datenstrukturen 4 Kreativaufgabe

Mehr

Übung Algorithmen und Datenstrukturen

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

Mehr

Übung Algorithmen und Datenstrukturen

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

Mehr

Sortieralgorithmen. Selection Sort

Sortieralgorithmen. Selection Sort intuitivster Suchalgorithmus Sortieralgorithmen Selection Sort In jedem Schritt wird das kleinste Element im noch unsortierten Array gesucht und ans Ende des bisher sortierten Teilarrays gehangen 3 1 4

Mehr

ADS: Algorithmen und Datenstrukturen

ADS: Algorithmen und Datenstrukturen ADS: Algorithmen und Datenstrukturen Teil π Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University of Leipzig Oct

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Sortierte Listen 2. Stacks & Queues 3. Teile und Herrsche Nächste Woche: Vorrechnen (first-come-first-served)

Mehr

(08 - Einfache Sortierverfahren)

(08 - Einfache Sortierverfahren) Vorlesung Informatik 2 Algorithmen und Datenstrukturen (08 - Einfache Sortierverfahren) Prof. Dr. Susanne Albers Sortieren Motivation, Einführung Datenbestände müssen sehr oft sortiert werden, etwa um

Mehr

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit Counting-Sort Counting - Sort ( A,B,k ). for i to k. do C[ i]. for j to length[ A]. do C[ A[ j ] C[ A[ j ] +. > C[ i] enthält Anzahl der Elemente in 6. for i to k. do C[ i] C[ i] + C[ i ]. > C[ i] enthält

Mehr

Elementare Sortierverfahren

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

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

A7.1 Untere Schranke. Algorithmen und Datenstrukturen. A7.1 Untere Schranke. Algorithmen und Datenstrukturen. A7.2 Quicksort. A7.

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

Mehr

Programmiertechnik II

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

Mehr

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

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

Mehr

Abschnitt 19: Sortierverfahren

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

Mehr

Prof. Dr. Margarita Esponda

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

Mehr

Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken.

Abstrakter 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

Mehr

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

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

Mehr

Heapsort, Quicksort, Mergesort. 8. Sortieren II

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

Mehr

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

Motivation Überblick

Motivation Überblick Kap. ff: Untere Laufzeitschranke und Lineare Verfahren Professor Dr. Lehrstuhl für Algorithm Engineering, LS Fakultät für Informatik, TU Dortmund 8. VO DAP SS 009. Mai 009. Übungstest Termin: Di 9. Mai

Mehr

12. Dynamische Datenstrukturen

12. Dynamische Datenstrukturen Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Implementationsvarianten der verketteten Liste 0 04 Motivation: Stapel ( push, pop, top, empty

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 6. Vorlesung Martin Middendorf / Universität Leipzig Institut für Informatik middendorf@informatik.uni-leipzig.de studla@bioinf.uni-leipzig.de Merge-Sort Anwendbar für

Mehr

Übung Algorithmen I

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

Mehr

Wiederholung: Zusammenfassung Felder. Algorithmen und Datenstrukturen (für ET/IT) Definition Abstrakter Datentyp. Programm heute

Wiederholung: Zusammenfassung Felder. Algorithmen und Datenstrukturen (für ET/IT) Definition Abstrakter Datentyp. Programm heute Wiederholung: Zusammenfassung Felder Algorithmen und Datenstrukturen (für ET/IT) Wintersemester / Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Ein Feld A kann repräsentiert

Mehr

Aufgabe 8. 1 Arbeitsweise illustrieren. 2 Korrektheitsbeweis führen. 3 Laufzeitanalyse durchführen.

Aufgabe 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

8 Elementare Datenstrukturen

8 Elementare Datenstrukturen Algorithmen und Datenstrukturen 186 8 Elementare Datenstrukturen In diesem und dem folgenden Kapitel werden grundlegende Techniken der Darstellung und Manipulation dynamischer Mengen auf Computern vorgestellt.

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

Kapitel 6 Elementare Sortieralgorithmen

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

Mehr

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

11. Elementare Datenstrukturen

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

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

Informatik II Prüfungsvorbereitungskurs

Informatik II Prüfungsvorbereitungskurs Informatik II Prüfungsvorbereitungskurs Tag 4, 9.6.2017 Giuseppe Accaputo g@accaputo.ch 1 Aufbau des PVK Tag 1: Java Teil 1 Tag 2: Java Teil 2 Tag 3: Algorithmen & Komplexität Tag 4: Dynamische Datenstrukturen,

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen A3. Sortieren: Selection- und Insertionsort Marcel Lüthi and Gabriele Röger Universität Basel 1. März 2018 Sortieralgorithmen Inhalt dieser Veranstaltung A&D Sortieren Komplexitätsanalyse

Mehr

Aufgabe (Schreibtischtest, lexikographische Ordnung)

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

Mehr

Aufgabe (Schreibtischtest, Algorithmenanalyse)

Aufgabe (Schreibtischtest, Algorithmenanalyse) Aufgabe (Schreibtischtest, Algorithmenanalyse) Führen Sie einen Schreibtischtest für den Algorithmus Positionsort für das folgende Eingabe-Array durch. Geben Sie nach jedem Durchlauf der for-schleife mit

Mehr

Quicksort ist ein Divide-and-Conquer-Verfahren.

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

Mehr

NAME, VORNAME: Studiennummer: Matrikel:

NAME, VORNAME: Studiennummer: Matrikel: TU Ilmenau, Fakultat IA Institut für Theoretische Informatik FG Komplexitätstheorie und Effiziente Algorithmen Prof. Dr. (USA) M. Dietzfelbinger Klausur Algorithmen und Datenstrukturen SS08, Ing.-Inf.

Mehr

Interne Sortierverfahren

Interne Sortierverfahren Angewandte Datentechnik Interne Sortierverfahren Interne Sortierverfahren Ausarbeitung einer Maturafrage aus dem Fach A n g e w a n d t e D a t e n t e c h n i k Andreas Hechenblaickner 5CDH HTBLA Kaindorf/Sulm

Mehr

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5

Beispiellö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

Tutoraufgabe 1 (Sortieralgorithmus):

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

Mehr

7. Sortieren Lernziele. 7. Sortieren

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

Mehr

Kapitel 2. Weitere Beispiele Effizienter Algorithmen

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

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Algorithmen und Datenstrukturen Teil 3 Suchen in Listen Version vom: 15. November 2016

Mehr

3. Übungsblatt zu Algorithmen I im SoSe 2017

3. Übungsblatt zu Algorithmen I im SoSe 2017 Karlsruher Institut für Technologie Prof. Dr. Jörn Müller-Quade Institut für Theoretische Informatik Björn Kaidel, Sebastian Schlag, Sascha Witt 3. Übungsblatt zu Algorithmen I im SoSe 2017 http://crypto.iti.kit.edu/index.php?id=799

Mehr

4. Sortieren 4.1 Vorbemerkungen

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

Mehr

13. Dynamische Datenstrukturen

13. Dynamische Datenstrukturen Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Sortierte Liste 40 40 Motivation: Stapel ( push, pop, top, empty ) Wir brauchen einen neuen

Mehr

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

Das 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

Mehr

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015

Ü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

Mehr

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

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

Mehr

Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Einfache Sortierverfahren Autor: Stefan Edelkamp

Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Einfache Sortierverfahren Autor: Stefan Edelkamp Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Einfache Sortierverfahren Autor: Stefan Edelkamp Institut für Informatik Georges-Köhler-Allee Albert-Ludwigs-Universität Freiburg 1

Mehr

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

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

Mehr

Ü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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen 11. Übung Verkettete Listen, Sortieren Insertionsort, Mergesort, Radixsort, Quicksort Clemens Lang Übungen zu AuD 19. Januar 2010 Clemens Lang (Übungen zu AuD) Algorithmen

Mehr

Algorithmen und Datenstrukturen. Kapitel 3: Sortierverfahren. Skript zur Vorlesung. Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen. Kapitel 3: Sortierverfahren. Skript zur Vorlesung. Algorithmen und Datenstrukturen LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Algorithmen und Datenstrukturen Kapitel 3: Sortierverfahren Skript zur Vorlesung Algorithmen und Datenstrukturen Sommersemester

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 2 (22.4.2016) Sortieren II Algorithmen und Komplexität SelectionSort: Programm Schreiben wir doch das gleich mal als Java/C++ - Programm

Mehr

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

Das 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

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

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

Mehr

Kapitel 3: Sortierverfahren Gliederung

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

Mehr

Algorithmen & Komplexität

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

Mehr

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

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen Technische Universität Braunschweig Wintersemester 2013/2014 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Stephan Friedrichs Klausur Algorithmen und

Mehr

Sortieren II / HeapSort Heaps

Sortieren 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

Mehr

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

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

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

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

Mehr

Tutoraufgabe 1 (Sortieren): Lösung: Datenstrukturen und Algorithmen SS14 Lösung - Übung 4

Tutoraufgabe 1 (Sortieren): Lösung: Datenstrukturen und Algorithmen SS14 Lösung - Übung 4 Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Lösung - Übung F. Corzilius, S. Schupp, T. Ströder Tutoraufgabe (Sortieren): a) Sortieren Sie das folgende Array durch Anwendung des Selectionsort-Algorithmus.

Mehr

Algorithmen und Datenstrukturen I Grundlagen

Algorithmen und Datenstrukturen I Grundlagen Algorithmen und Datenstrukturen I Grundlagen Prof. Dr. Oliver Braun Letzte Änderung: 01.11.2017 14:15 Algorithmen und Datenstrukturen I, Grundlagen 1/24 Algorithmus es gibt keine präzise Definition Handlungsvorschrift

Mehr

1 Raumwechsel: Gr. 15 (Do 10-12, F-235) ab sofort in G Studie zum Arbeitsverhalten von Studierenden unter Leitung

1 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

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Praktikum Algorithmische Anwendungen WS 2006/07 Sortieren in linearer Laufzeit

Praktikum 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

Mehr

Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Suchverfahren Autor: Stefan Edelkamp / Sven Schuierer

Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Suchverfahren Autor: Stefan Edelkamp / Sven Schuierer Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Suchverfahren Autor: Stefan Edelkamp / Sven Schuierer Institut für Informatik Georges-Köhler-Allee Albert-Ludwigs-Universität Freiburg

Mehr

Übersicht. Einfache Verfahren MergeSort Untere Schranke QuickSort Selektieren Schnelleres Sortieren Externes Sortieren. 6 Sortieren.

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

Mehr

Übungsklausur Algorithmen I

Übungsklausur Algorithmen I Universität Karlsruhe, Institut für Theoretische Informatik Prof. Dr. P. Sanders 26.5.2010 svorschlag Übungsklausur Algorithmen I Hiermit bestätige ich, dass ich die Klausur selbständig bearbeitet habe:

Mehr

Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen

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

Mehr

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

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Feld. Feld als sequentielle Liste

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Feld. Feld als sequentielle Liste Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 204 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Einführung 2 Grundlagen von Algorithmen

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 12

Algorithmen und Datenstrukturen 12 12. Juli 2012 1 Besprechung Blatt 11 Fragen 2 Binary Search Binäre Suche in Arrays Binäre Suchbäume (Binary Search Tree) 3 Sortierverfahren Allgemein Heapsort Bubblesort Insertionsort Mergesort Quicksort

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

3. Suchen. Das Suchproblem. Suche in Array. Lineare Suche. 1 n. i = n Gegeben Menge von Datensätzen.

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

Datenstrukturen & Algorithmen

Datenstrukturen & 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

Mehr

Datenstrukturen und Algorithmen. Vorlesung 8

Datenstrukturen und Algorithmen. Vorlesung 8 Datenstrukturen und Algorithmen Vorlesung 8 Inhaltsverzeichnis Vorige Woche: ADT Stack ADT Queue Heute betrachten wir: ADT Deque ADT Prioritätsschlange Binomial-Heap Schriftliche Prüfung Informationen

Mehr

Musterlösungen zu Datenstrukturen und Algorithmen SS 2005 Blatt 2, Aufgabe 3 Wir schreiben zunächst alle Funktionen zur Basis 2.

Musterlösungen zu Datenstrukturen und Algorithmen SS 2005 Blatt 2, Aufgabe 3 Wir schreiben zunächst alle Funktionen zur Basis 2. Prof. Dr. Johannes Blömer Paderborn, den. August 005 Musterlösungen zu Datenstrukturen und Algorithmen SS 005 Blatt, Aufgabe 3 Wir schreiben zunächst alle Funktionen zur Basis. Dann erhalten wir 3 n log(n)

Mehr

f 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

f 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

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Algorithmen und Datenstrukturen Teil 2 Sortieren Version vom: 7. Dezember 2016 1 / 94

Mehr

Übungsklausur Algorithmen I

Übungsklausur Algorithmen I Jun.-Prof. Hofheinz, Jun.-Prof. Meyerhenke (ITI, KIT) 08.06.2015 Übungsklausur Algorithmen I Aufgabe 1. (Algorithm Engineering) Nennen Sie zwei Konzepte, die Algorithm Engineering im Gegensatz zu theoretischer

Mehr

8.1.3 Operation Build-Max-Heap Operation zur Konstruktion eines Heaps Eingabe: Feld A[1..n], n = länge(a) BUILD-MAX-HEAP (A)

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

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dr. Michael Brinkmeier Technische Universität Ilmenau Fakultät Informatik und Automatisierung Fachgebiet Automaten und Formale Sprachen 4.7.2007 Dr. Michael Brinkmeier (TU

Mehr

Technische Universität München

Technische 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

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

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

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 4 (7.5.2014) Asymptotische Analyse, Sortieren IV Algorithmen und Komplexität Erfahrungen 1. Übung C++ / Java sind komplett ungewohnt Struktur

Mehr

Sortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block

Sortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block Inhalt: InsertionSort BubbleSort QuickSort Block M.: "Java-Intensivkurs - In 14 Tagen lernen Projekte erfolgreich zu realisieren", Springer-Verlag 2007 InsertionSort I Das Problem unsortierte Daten in

Mehr

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

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

Mehr

Bucketsort. Korrektheit. Beispiel. Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt.

Bucketsort. Korrektheit. Beispiel. Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt. Bucketsort Beispiel Eingabe: Array A mit n Elementen im Bereich [0,1) Annahme: die Elemente sind in [0,1) gleichverteilt 1 2 A.78.17 0 1 B.12.17 Sonst: Skalieren ( Aufwand O(n) ) 3.39 2.21.23.26 Idee:

Mehr

Datenstrukturen und Algorithmen 2. Klausur SS 2001

Datenstrukturen und Algorithmen 2. Klausur SS 2001 UNIVERSITÄT PADERBORN FACHBEREICH 7 (MATHEMATIK INFORMATIK) Datenstrukturen und Algorithmen 2. Klausur SS 200 Lösungsansätze Dienstag, 8. September 200 Name, Vorname:...................................................

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Jörn Fischer j.fischer@hs-mannheim.de Willkommen zur Vorlesung Grundlagen der Informatik ADS-Teil Page 2 Überblick Inhalt 1 Eigenschaften von Algorithmen Algorithmenbegriff O-Notation Entwurfstechniken

Mehr

Prof. H. Herbstreith Fachbereich Informatik. Leistungsnachweis. Informatik 1 WS 2001/2002

Prof. H. Herbstreith Fachbereich Informatik. Leistungsnachweis. Informatik 1 WS 2001/2002 Prof. H. Herbstreith 30.01.2002 Fachbereich Informatik Leistungsnachweis Informatik 1 WS 2001/2002 Bearbeitungszeit 120 Minuten. Keine Hilfsmittel erlaubt. Aufgabe 1: 20 Punkte Vervollständigen Sie folgende

Mehr

lim log 2n n = > 0 Da es einen Limes gibt, gibt es auch einen Limes inferior, der gleich diesem Limes ist.

lim 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)

Mehr