Algorithmen und Datenstrukturen 1-3. Seminar -
|
|
- Catrin Straub
- vor 7 Jahren
- Abrufe
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 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 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
MehrAlgorithmen 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 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 Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Vorstellen des vierten Übungsblatts 2. Vorbereitende Aufgaben für das vierte Übungsblatt
MehrSortieralgorithmen. 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
MehrADS: 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 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)
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
MehrCounting - 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
MehrElementare Sortierverfahren
Algorithmen und Datenstrukturen I Elementare Sortierverfahren Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 18.03.2018 18:16 Inhaltsverzeichnis Sortieren.......................................
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen A7. Sortieren III Marcel Lüthi and Gabriele Röger Universität Basel 14. März 2018 Untere Schranke Sortierverfahren Sortieren Vergleichsbasierte Verfahren Nicht vergleichsbasierte
MehrA7.1 Untere Schranke. Algorithmen und Datenstrukturen. A7.1 Untere Schranke. Algorithmen und Datenstrukturen. A7.2 Quicksort. A7.
Algorithmen und Datenstrukturen 14. März 2018 A7. III Algorithmen und Datenstrukturen A7. III Marcel Lüthi and Gabriele Röger Universität Basel 14. März 2018 A7.1 Untere Schranke A7.2 Quicksort A7.3 Heapsort
MehrProgrammiertechnik II
Sortieren: Einfache Algorithmen Sortieren Abstrakte Operation geg: Menge von items (Elemente) jedes Element besitzt Sortierschlüssel Schlüssel unterliegen einer Ordnung eventuell sind doppelte Schlüssel
MehrUE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 9. Sortieren
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 9 Sortieren Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger Straße 69, A-4040 Linz Sortieren :: Problemstellung
MehrAbschnitt 19: Sortierverfahren
Abschnitt 19: Sortierverfahren 19. Sortierverfahren 19.1 Allgemeines 19.2 Einfache Sortierverfahren 19.3 Effizientes Sortieren: Quicksort 19.4 Zusammenfassung 19 Sortierverfahren Informatik 2 (SS 07) 758
MehrProf. Dr. Margarita Esponda
Algorithmen und Programmieren II Sortieralgorithmen imperativ Teil I Prof. Dr. Margarita Esponda Freie Universität Berlin Sortieralgorithmen Bubble-Sort Insert-Sort Selection-Sort Vergleichsalgorithmen
MehrAbstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken.
Abstrakte Datentypen und Datenstrukturen/ Einfache Beispiele Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken. Datenstruktur (DS): Realisierung
Mehr8. Sortieren II. 8.1 Heapsort. Heapsort. [Max-]Heap 6. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften
Heapsort, Quicksort, Mergesort 8. Sortieren II 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 9 210 Heapsort [Max-]Heap 6 Inspiration von Selectsort: Schnelles Einfügen Binärer Baum mit
MehrHeapsort, Quicksort, Mergesort. 8. Sortieren II
209 Heapsort, Quicksort, Mergesort 8. Sortieren II 210 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 211 Heapsort Inspiration von Selectsort: Schnelles Einfügen Inspiration von Insertionsort:
MehrSortieralgorithmen. Jan Pöschko. 18. Januar Problemstellung Definition Warum Sortieren?... 2
Jan Pöschko 18. Januar 2007 Inhaltsverzeichnis 1 Problemstellung 2 1.1 Definition................................... 2 1.2 Warum Sortieren?.............................. 2 2 Einfache Sortieralgorithmen
MehrMotivation Ü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
Mehr12. Dynamische Datenstrukturen
Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Implementationsvarianten der verketteten Liste 0 04 Motivation: Stapel ( push, pop, top, empty
MehrAlgorithmen 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 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
MehrWiederholung: 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
MehrAufgabe 8. 1 Arbeitsweise illustrieren. 2 Korrektheitsbeweis führen. 3 Laufzeitanalyse durchführen.
Aufgabe 8 Betrachten Sie den folgenden Algorithmus namens Bubble-Sort. Bubble-Sort(A[1..n]): 1 for i 1 to length(a) 1 2 do for j length(a) downto i + 1 3 do if A[j 1] > A[j] 4 then A[j 1] A[j] 1 Arbeitsweise
Mehr8 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)
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
MehrKapitel 6 Elementare Sortieralgorithmen
Kapitel 6 Elementare Sortieralgorithmen Ziel: Kennenlernen elementarer Sortierverfahren und deren Effizienz Zur Erinnerung: Das Sortier-Problem Gegeben: Folge A von n Elementen a 1, a 2,..., a n ; Eine
MehrProgrammieren 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
Mehr11. Elementare Datenstrukturen
11. Elementare Datenstrukturen Definition 11.1: Eine dynamische Menge ist gegeben durch eine oder mehrer Mengen von Objekten sowie Operationen auf diesen Mengen und den Objekten der Mengen. Dynamische
MehrDatenstrukturen 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:
MehrInformatik 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,
MehrAlgorithmen 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
MehrAufgabe (Schreibtischtest, lexikographische Ordnung)
Aufgabe (Schreibtischtest, lexikographische Ordnung) Führen Sie einen Schreibtischtest für den Algorithmus Bubblesort aus der VL für die folgenden Eingabe-Arrays durch. Geben Sie das Array S nach jedem
MehrAufgabe (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
MehrQuicksort ist ein Divide-and-Conquer-Verfahren.
. Quicksort Wie bei vielen anderen Sortierverfahren (Bubblesort, Mergesort, usw.) ist auch bei Quicksort die Aufgabe, die Elemente eines Array a[..n] zu sortieren. Quicksort ist ein Divide-and-Conquer-Verfahren.
MehrNAME, 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.
MehrInterne 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
MehrBeispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5
Robert Elsässer Paderborn, den 15. Mai 2008 u.v.a. Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 AUFGABE 1 (6 Punkte): Nehmen wir an, Anfang bezeichne in einer normalen
MehrTutoraufgabe 1 (Sortieralgorithmus):
Prof. aa Dr. Ir. Joost-Pieter Katoen Datenstrukturen und Algorithmen SS Tutoriumslösung - Übung 4 (Abgabe 2..2) Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Sortieralgorithmus):
Mehr7. Sortieren Lernziele. 7. Sortieren
7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche
MehrKapitel 2. Weitere Beispiele Effizienter Algorithmen
Kapitel 2 Weitere Beispiele Effizienter Algorithmen Sequentielle Suche Gegeben: Array a[1..n] Suche in a nach Element x Ohne weitere Zusatzinformationen: Sequentielle Suche a[1] a[2] a[3] Laufzeit: n Schritte
MehrAlgorithmen 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
Mehr3. Ü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
Mehr4. Sortieren 4.1 Vorbemerkungen
. Seite 1/21 4. Sortieren 4.1 Vorbemerkungen allgemeines Sortierproblem spezielle Sortierprobleme Ordne a 1,..., a n so um, dass Elemente in aufsteigender Reihenfolge stehen. Die a i stammen aus vollständig
Mehr13. 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
MehrDas Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle
119 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Exponentielle Suche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 120 Das Suchproblem Gegeben
MehrÜbersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015
Datenstrukturen und Algorithmen Vorlesung 8: (K6) 1 Joost-Pieter Katoen Lehrstuhl für Informatik Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-15/dsal/ 7. Mai 015 3 Joost-Pieter
MehrDas Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle
122 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 123 Das Suchproblem Gegeben Menge von Datensätzen.
MehrAlgorithmen 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
MehrHeapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
Heapsort / 1 Heap: Ein Array heißt Heap, falls A [i] A [2i] und A[i] A [2i + 1] (für 2i n bzw. 2i + 1 n) gilt. Beispiel: A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Heapsort / 2 Darstellung eines Heaps als
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 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
MehrAlgorithmen 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
MehrAlgorithmen 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
MehrInformatik 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
MehrDas Suchproblem 4. Suchen Das Auswahlproblem Suche in Array
Das Suchproblem Gegeben. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.-3,2.2-3,2.3-] Menge von Datensätzen. Beispiele
MehrAlgorithmen und Datenstrukturen (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
MehrKapitel 3: Sortierverfahren Gliederung
Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen
MehrAlgorithmen & Komplexität
Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Breitensuche, Tiefensuche Wir besprechen nun zwei grundlegende Verfahren, alle Knoten eines Graphen zu
Mehr2 Sortieren. Beispiel: Es seien n = 8 und a = i : a i : ϕ(i) : a ϕ(i) :
2 Sortieren Das Sortieren einer Datenfolge ist eines der am leichtesten zu verstehenden und am häufigsten auftretenden algorithmischen Probleme. In seiner einfachsten Form besteht das Problem darin, eine
MehrKlausur 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
MehrSortieren II / HeapSort Heaps
Organisatorisches VL-07: Sortieren II: HeapSort (Datenstrukturen und Algorithmen, SS 2017) Vorlesung: Gerhard Woeginger (Zimmer 4024 im E1) Email: dsal-i1@algo.rwth-aachen.de Webseite: http://algo.rwth-aachen.de/lehre/ss17/dsa.php
MehrKap. 3: Sortieren. Überblick. Unser Sortierproblem. Motivation. Laufzeitmessung. Warum soll ich hier bleiben? Sortierverfahren sind WICHTIG!!!
Kap. 3: Sortieren Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund Überblick Einführung in das Sortierproblem Insertion-Sort Selection-Sort Merge-Sort 4. VO
MehrAlgorithmen 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
MehrTutoraufgabe 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.
MehrAlgorithmen 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
Mehr1 Raumwechsel: Gr. 15 (Do 10-12, F-235) ab sofort in G Studie zum Arbeitsverhalten von Studierenden unter Leitung
Organisatorisches Algorithmen und Datenstrukturen Kapitel 3: Divide & Conquer Frank Heitmann heitmann@informatik.uni-hamburg.de 1 Raumwechsel: Gr. 15 (Do 10-12, F-235) ab sofort in G-021. 2 Studie zum
MehrGrundlagen 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.
MehrPraktikum Algorithmische Anwendungen WS 2006/07 Sortieren in linearer Laufzeit
Praktikum Algorithmische Anwendungen WS 2006/07 Sortieren in linearer Laufzeit Team A blau Martin Herfurth 11043831 Markus Wagner 11043447 5. Februar 2007 1 1 Untere Schranke für Vergleichsbasierte Algorithmen
MehrAlgorithmen 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 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
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:
MehrKapitel 10. Komplexität von Algorithmen und Sortieralgorithmen
Kapitel 10 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:
MehrAbschnitt: Algorithmendesign und Laufzeitanalyse
Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher
MehrProgramm 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
MehrTechnische 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
MehrAlgorithmen 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
MehrWiederholung 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
Mehr3. Suchen. Das Suchproblem. Suche in Array. Lineare Suche. 1 n. i = n Gegeben Menge von Datensätzen.
Das Suchproblem Gegeben Menge von Datensätzen. 3. Suchen Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle Jeder Datensatz hat einen Schlüssel k. Schlüssel sind vergleichbar: eindeutige Antwort auf
MehrDatenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Sortieralgorithmen Einleitung Heapsort Quicksort 2 Motivation Sortieren ist Voraussetzung für viele Anwendungen Nach
MehrDatenstrukturen 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
MehrMusterlö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)
Mehrf 1 (n) = log(n) + n 2 n 5 f 2 (n) = n 3 + n 2 f 3 (n) = log(n 2 ) f 4 (n) = n n f 5 (n) = (log(n)) 2
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Lösung - Präsenzübung.05.0 F. Corzilius, S. Schupp, T. Ströder Aufgabe (Asymptotische Komplexität): (6 + 0 + 6 = Punkte) a) Geben Sie eine formale
MehrAlgorithmen 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
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
Mehr8.1.3 Operation Build-Max-Heap Operation zur Konstruktion eines Heaps Eingabe: Feld A[1..n], n = länge(a) BUILD-MAX-HEAP (A)
Stand der Vorlesung: Datenstruktur Heap: fast vollständiger Binärbaum MaxHeap: sortierter Heap, größtes Element an Wurzel Sortierverfahren: HeapSort: Sortieren eines Feldes A[1.. n] Idee: in place: Feld
MehrAlgorithmen 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
MehrTechnische Universität München
Stand der Vorlesung: Datenstruktur Heap: fast vollständiger Binärbaum MaxHeap: sortierter Heap, größtes Element an Wurzel Sortierverfahren: HeapSort: Sortieren eines Feldes A[1.. n] Idee: in place: Feld
MehrKapitel 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:
MehrJAVA - Suchen - Sortieren
Übungen Informatik I JAVA - Suchen - Sortieren http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 Inhalt Suchen/Sortieren binary search mergesort bubblesort Übungen Informatik
MehrInformatik 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
MehrSortieralgorithmen. 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
MehrAlgorithmen und Datenstrukturen SS09. Foliensatz 15. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik
Foliensatz 15 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 2009 TU Ilmenau Seite 1 / 16 Untere Schranken für das Vergleichsbasierte Sortieren TU
MehrBucketsort. 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:
MehrDatenstrukturen 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:...................................................
MehrGrundlagen 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
MehrProf. 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
Mehrlim log 2n n = > 0 Da es einen Limes gibt, gibt es auch einen Limes inferior, der gleich diesem Limes ist.
Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Jonathan Heinen, Thomas Ströder, Sabrina von Styp Aufgabe 1 (O-Notation): Beweisen oder widerlegen Sie die folgenden Aussagen: (3 + 3 + 4 = 10 Punkte)
Mehr