• Keine Ergebnisse gefunden

F F 212T F TEI

N/A
N/A
Protected

Academic year: 2022

Aktie "F F 212T F TEI"

Copied!
8
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)TECHNISCHE UNIVERSITÄT MÜNCHEN. FAKULTÄT FÜR INFORMATIK Lehrstuhl für Physik-basierte Simulation Grundlagen: Algorithmen und Datenstrukturen Prof. Dr.-Ing. Nils Thürey, G. Kohl, L. Prantl, E. Franz. SS 2021 Übungsblatt 8 2021–06–09. Übung: KW 24 (2021–06–14 2021–06–18) Abgabe H: 2021–06–27 (bis 23:59 Uhr) Dieses Blatt enthält zusätzlichen Platz für Nebenrechnungen. Aufgabe 8.1 (P) Laufzeitanalyse: Mergesort In dieser Aufgabe machen wir eine Laufzeitanalyse von Mergesort. In der Vorlesung wurde die Laufzeit rekursiv formuliert und das Mastertheorem verwendet, um zu zeigen, dass die Laufzeit von Mergesort in O(n log n) liegt. n 7 Die rekursive Formulierung der Laufzeit lautet links Feffetheninen Mitte links ⇣j n k⌘ ⇣l n m⌘ rechts rechts LH T (n) = T +T + ⇥(n) 2 2 (1) T (1) = ⇥(1) I Konstant c Konstante z B A Zeigen Sie ohne Verwendung des Master-Theorems, dass die Worst-Case-Laufzeit von Mergesort angewandt auf Zahlenfolgen, deren Längen Zweierpotenzen sind, in O(n log n) liegt.. FFI. lz.B.cn. n. 2M. login log 2M em Rekstufen logzn Id n g. (a) Verwenden Sie dazu die Methode des iterativen Einsetzens.. btw M. 1. n. T 1 1. EI. 1. E. t. E. 2T. 4T 4. k 3. fiirbeliebiges K. 8T. c. F. t. 2T. F. t. F. t. 3cm. 2K T. Tcu. E. t ch. 2cm. t. CIT. k cu. une. t. fair die. te k m. Gleichung. en. t 1cm t. wir interessieven. m. E. T. 212T F k 2. TEI. t 1. ch. t. kn. 2T. E. ten.

(2) 2M. fair k m. w n. 2. T. t. w. a. (b) Verwenden Sie dazu vollständige Induktion.. wir Wahlen eine. Wir woihlen flat. n. 1 t. E. d Logzd. a. E. d logs d. Tcn. e. 2T. n. E. f. n. fiir alle. dn. Coger. Hn. n. for alle. h. f. C 0 n Logan IV. dn logz du. Induktiousaufang. tussage. T. dh. logzn.cn 2. Och Logan. C. login. Tcn. von. 2 u zeigen ist Tcn E du. Induktiousschritt. w. t. nicht rekursive Funktion. als obere Schrauke. Zweierpotenzen. na. Mcn. 20. f. 1 in. 7. einseteen. 1. d. c. Max. Ea 2. Wir Komen aunehuren dass die Zweierpotenzen. E. von. 2. ten. dn. Logvegel. n bis n 1. DE logz DE tog. dn. z. t. dn cogzldn dir log du E dn log Cdn. Beide Kriterien zusauunen. d. gift. Max. ten cu. LG. dn't c. d. tch en. c. 2 a e. D.

(3) 3 Aufgabe 8.2 (P) Instabile Sortierverfahren Bisher wurden Sortieralgorithmen in der Vorlesung hauptsächlich darauf untersucht, welche Laufzeitkomplexität und welche Speicheranforderungen sie haben. Ob die Algorithmen “stabil” sortieren oder nicht wurde zwar erwähnt, aber die Bedeutung davon bisher noch nicht beleuchtet. Bei dieser Aufgabe geht es darum, eine Liste mit komplexen Objekten mit verschiedenen Ansätzen zu sortieren, und die Ergebnisse zu vergleichen. Gegeben ist die folgende Liste mit Objekten, die Haustiere beschreiben. Die Liste ist bereits nach dem Namen alphabetisch vorsortiert, allerdings soll sie jetzt (aufsteigend) nach dem Alter sortiert werden. Name: Arko Alter: 2. Bello 1. Clea 6. Daisy 5. Elsa 5. Felix 2. Grisou 3. Hasso 5. Idefix 4. a) Sortieren Sie die Liste zunächst mithilfe des stabilen Algorithmus Mergesort. Verwenden Sie ausschließlich das Alter zur Bestimmung, ob ein Element vor oder nach einem anderen Element einsortiert werden soll. Achten Sie bei der Merge-Phase darauf, dass gemäß Vorlesung gleichwertige Elementen zuerst aus der linken Teilsequenz übernommen werden.. ZA. 1B. 6C. 5D. 5E HH ZE. 3G. 5h. 41. 6C Ill 5D 5E 1111 2F 36 111 5h 41 1111 2F 1136111 5111141 2A 1B 116C Ill 50115 2A l 1B 116C 111 5D 115 1111 2F 1136 Ill 5h 1141 1B 2A 116C Ill 5D 115 1111 2F 1136 Ill 5111141 1B 2A 6C Ill 5D 5E 1111 2F 3G 111 41 5h 2A. 1B. 1B 2A. 1B. 5D. 5E. 6C. ZA 2E 36 41. 1111 5D. 36. 2F. 5E. 5h. 6C. 41. bH. stabic. b) Sortieren Sie jetzt die ursprüngliche Liste erneut mithilfe des instabilen QuickSort. Verwenden Sie auch hier ausschließlich das Alter als Sortierschlüssel. Verwenden Sie den in der Vorlesung beschriebenen Algorithmus, wobei das letzte Element als Pivot verwendet wird, jedoch mit der Abänderung, dass Elemente, die den Wert des Pivotelements haben, als größer als das Pivot erachtet werden. Folgende Änderung wird also am Algorithmus vorgenommen: do{j--} while (j. l ^ a[j]. p).

(4) 4 Wenn eine Teilsequenz nur noch aus maximal 2 Elementen besteht, dürfen Sie der Einfachheit halber die Rekursion beenden, und bei Bedarf beide Elemente direkt in die jeweils richtige Position tauschen.. 1B. 2A Ti 3. pivot. 6C Ti. 74. 5E. 5D. i und. Verfausche. 1B. 2A. 3G. 5E. 5D Ti. 1B. 3G. 1st i. Pivot. 2A. Vertausche. 1B. Tj. 2A. 1st. 1B. Ti i. 2F. 41. 3G. 6C. 5h Tj. Pivot 4. 5h. j. 5D. 6C. 41. 5h. Pivot. 41. pivot. 41. Ja also vertausche 5D. Titi. c. 6C. 5h Tj c5. 5E. 1st isPivot 1st 535 Ja. jundj. 36. j. Tj. 25. CZ. 2F. Pivot 1st 232. ZF. 5E ITT. 1st 5E 41. 1B 3G Tj c Tj. 2A. Ti 22. 2F. Tj. ZF. i und. Verfausche. 3G. ZF. Pivot. 2A run. 41. 5E. 6C. 511. 5D. 5E. 6C. 5h. 5D. Ja. 41. Ii. 1st i Pivot. Is's. let6 5 Ja. 1B. ZF. 2A. 3G. 41. 5E. bD. 5th 6C. 1B. ZF. 2A. 3G. 41. 5E. bD. 5h. nicht stabile. 6C.

(5) 5 Aufgabe 8.3 (P) Laufzeitanalyse In der Vorlesung lernen wir, Algorithmen aus theoretischer Sicht zu analysieren. Neben dieser Art der Algorithmen-Analyse gibt es die experimentelle Analyse. Hierbei testet man für Eingaben das Laufzeitverhalten eines Algorithmus. In der Abbildung 1 sind für drei Algorithmen die gemessenen oberen Schranken für die Laufzeit t in Abhängigkeit der Eingabegröße n einer solchen experimentellen Analyse angegeben. Ordnen Sie die Algorithmen nach ihrer Laufzeit. Bitte beachten Sie, dass es sich bei der Angabe von log um den Logarithmus zur Basis 2 handelt. Algorithmus 1 t. Y. Allgemein. Y. X t. 1. y fCx YEAH. d. 3. 4.4 Ax. 1. Efx. 1. Yz. n. Algorithmus 3 2t3. z. 2. 4. 1. I. dO X. 3X. Algorithmus 2 logt. 4. 1. 1. X. 2n. logn. Abbildung 1: Graphen zu den gemessenen Laufzeiten verschiedener Algorithmen.. 3. n. logtz. 2. tog n. 2b. 4. 2h. t. Nach ti auftosen. 3h. try. logtz. 2 Logar 9. 2. 12 Ez. 2109. Ez. h2. 2t3 E3 E3. 4. 2h. log 4.2 ht 2. 12 l Logregel h2. da log Umkehrop von 2. logy log 4 Sorfiert. login. login. x login. 209regel og ab t. log 2. ht 2 C t. log b. 2 the. 3ns m2. tr. log a. ta. n. 4.

(6) 6 Aufgabe 8.4 (E) Laufzeitanalyse: Slowsort Der Slowsort-Algorithmus ist ein besonders ineffizientes Sortierverfahren mit nicht-polynomieller Laufzeit1 , welches dem Prinzip vervielfache und kapituliere folgt. Der Algorithmus führt dabei folgende Schritte aus: 1. Bestimmung des Maximums in der linken Hälfte des Feldes, indem der Slowsort-Algorithmus rekursiv aufgerufen wird 2. Bestimmung das Maximums in der rechten Hälfte des Feldes, indem der Slowsort-Algorithmus rekursiv aufgerufen wird 3. Wahl des größeren der beiden Maxima, welches auch das Maximum des gesamten Feldes ist, Tausch dieses Elements an den höchsten Index des Feldes 4. Rekursive Sortierung des Restfeldes mit Slowsort In Java lässt sich der Algorithmus wie folgt implementieren: 1 2 3 4 5 6 7 8 9 10. void slowsort ( int [] numbers , int from , int to ) { if ( from >= to ) // Rekursionsende bei leerem Teilfeld return ; int m = from + ( to - from ) /2; slowsort ( numbers , from , m ) ; // Schritt 1 slowsort ( numbers , m + 1 , to ) ; // Schritt 2 if ( numbers [ m ] > numbers [ to ]) // Schritt 3 swap ( numbers , m , to ) ; // Schritt 3 slowsort ( numbers , from , to - 1) ; // Schritt 4 }. Lösen Sie folgende Teilaufgaben: a) Stellen Sie eine Rekursionsgleichung für die Laufzeit von Slowsort auf. Überlegen Sie sich eine obere Schranke für die geschlossene Darstellung der Laufzeit des Algorithn mus, indem Sie die Ungleichung n 1 (für n 2) ausnutzen. Beweisen Sie die 2 Richtigkeit Ihrer oberen Schranke durch vollständige Induktion.. 1. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.116.9158.

(7) 7. b) Zeigen Sie die Korrektheit von Slowsort durch vollständige Induktion über die Anzahl der Elemente im zu sortierenden Feld..

(8) 8 c) Zeigen Sie, dass Slowsort kein stabiles Sortierverfahren ist.. Aufgabe 8.5 (H) Binomial Heap - Diese Aufgabe zählt für den Notenbonus. Sie finden die Aufgabe und weitere wichtige Informationen unter https://artemis.ase. in.tum.de/#/courses/119/exercises/4069. Warten Sie mit Verständnisfragen bitte, bis das Thema in der Vorlesung bzw. in der Übung besprochen wurde. Hier werden sich die meisten Fragen von alleine klären..

(9)

Referenzen

ÄHNLICHE DOKUMENTE

[r]

Bestimmen Sie (ohne Beweis) f¨ ur jede Kom- ponente von C \Sp(γ) die Windungszahl von γ um ein Element der entsprechenden Kom- ponente und tragen Sie diese in die Grafik

Hinweise: Bitte Namen und ¨ Ubungsgruppe auf jedem Blatt.. Maximal 3

Zur L ¨osung der folgenden Aufgaben darf die generische Klasse DIRK verwendet werden, welche in der HDNum Bibliothek in der Datei hdnum/src/ode.hh implementiert ist..

(Hinweis: Beim Gauss-Verfahren sind die (c i ) i≤s gerade die St ¨utzpunkte aus der Gauss-Quadratur, welche Polynome bis zur Ordnung 2s − 1 exakt integriert. Verwenden Sie

Fachbereich Mathematik und Informatik Sommersemester 2008 Universit¨ at

Du weisst was eine Permutation einer Liste aus n verschiedenen Elementen ist und kannst diese Permutationen systematisch f¨ ur eine Liste mit maximal 4 Elementen aufz¨ ahlen.. Du

[r]