• Keine Ergebnisse gefunden

Algorithmen und Datenstrukturen (WS 2019) Aufgabenblatt 5

N/A
N/A
Protected

Academic year: 2022

Aktie "Algorithmen und Datenstrukturen (WS 2019) Aufgabenblatt 5"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

TU Kaiserslautern – FB Informatik 03.12.2019

Dr. Patrick Michel

Algorithmen und Datenstrukturen (WS 2019) Aufgabenblatt 5

zu bearbeiten bis: 09.12.19 / 12.12.19

Aufgabe 5.1 (HeapSort - Theorie)

a) Sortieren Sie das folgende Array absteigend mit dem HeapSort Verfahren aus der Vorlesung:

2 1 7 8 4 3 9 6

Stellen Sie zun¨achst das Array als Baum dar und skizieren Sie dann das Feld nach jedem Durchlauf von max heapify, sowohl beim initialen Bauen des Heaps, als auch nach je- dem Durchlauf der Hauptschleife.

b) Wann erreicht HeapSort den bestm¨oglichen Aufwand? Begr¨unden Sie informell, gerne an- hand von Beispielen. (Daten aufsteigend? Absteigend? Ganz anderer Fall?)

Aufgabe 5.2 (Heap- und RadixSort - Praxis)

Wir implementieren nun zwei weitere effiziente Sortierverfahren.

a) Implementieren Sie (aufsteigenden) HeapSort in Java.

b) Implementieren Sie (aufsteigenden) Radix-Exchange-Sort in Java.

Wir werden dazu als Radix m = 2 (Bin¨arzahlen) verwenden. Machen Sie sich zunutze, dass wir Personen momentan nach Alter sortieren und keine Person ¨alter als 120 Jahre ist.

Welche L¨ange f¨ur die Schl¨ussel ist also vollkommen ausreichend? (Auch wenn das Alter als Javaintrepr¨asentiert ist, macht es wenig Sinn alle 32 Bits zu durchlaufen.)

Um zu testen, ob ein bestimmtes Bit einer Zahl gesetzt ist, k¨onnen Sie die MethodetestBit verwenden. Dabei gilt Bit 0 als das h¨ochste Bit (beiintdas Vorzeichen) und Bit 31 als das niedrigste (sprich ob die Zahl ungerade ist oder nicht).

Aufgabe 5.3 (Externes Sortieren - Theorie)

a) F¨uhren Sie f¨ur die folgenden Daten ein 3-Wege-Mischen durch. Gehen Sie von einer Blockgr¨oße von (nur) 2 Werten aus. Skizzieren Sie den Zustand Ihrer Dateien/B¨ander nach der initialien Blockbildung, sowie nach jedem Misch-Vorgang. Wieviele Dateien/B¨ander ben¨otigen Sie insgesamt? Wieviele Mischvorg¨ange ben¨otigen Sie?

d1 48 33 12 67 2 53 55 32 64 78 92 72 4 26 100 62 27 21 47 63

b) Wieviele Werte k¨onnen Sie mit 10 Mischvorg¨angen maximal sortieren?

Materialien: https://softech.cs.uni-kl.de/homepage/de/teaching/WS19/algodat

Algorithmen und Datenstrukturen (WS 2019) (5) 1/1

Referenzen

ÄHNLICHE DOKUMENTE

• Insertionsort (Skizzieren Sie das Feld nach jedem Durchlauf der ¨außeren Schleife).. • Selectionsort (Skizzieren Sie das Feld nach jedem Durchlauf der

Um die beste L¨osung f¨ur einen Bereich zu finden, vergleichen Sie drei L¨osungen: (1) die beste L¨osung, die rekur- siv in der linken H¨alfte gefunden wurde, (2) die beste L¨osung,

In der Vorlesung haben Sie eine alternative Implementierung des List Interface gesehen, mit Hilfe von einzelt verketteten Listen ( SingleLinkedList ).. • Annotieren Sie an jede

• Erg¨anzen Sie nun die iterator() Methode f¨ur die Klasse DoubleLinkedList und implementieren sie die gleichen drei Methoden im passenden Iterator?. • Welche Komplexit¨at haben

• Die Methode createRandomPlane(int size, String seed) konstruiert eine zuf¨allige Instanz mit size St¨adten, bei der jede Stadt zuf¨allige Koordinaten auf einer virtuellen

Mergen zweier Teilfolgen mittels 3 Blöcken im internen Speicher (rote Kästen):..

Die Aufgabe kann jedoch auch vollst¨ andig ohne Verwendung des lokalen Dreibeins gel¨ ost werden (wenn auch weniger elegant).. Wie lautet die Energie

Dort liegt im doc- Verzeichnis das Tutorial tutorial.pdf, das beschreibt, wie eine komplexe Geometrie (Flasche mit Ge- winde) mit dem CAD-Kernel modelliert werden kann.. Zun¨achst