• Keine Ergebnisse gefunden

6. Praktikums-Aufgabe "Algorithmen und Programmierung II"

N/A
N/A
Protected

Academic year: 2022

Aktie "6. Praktikums-Aufgabe "Algorithmen und Programmierung II""

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

6. Praktikums-Aufgabe "Algorithmen und Programmierung II"

Sommersemester 2014

Vorbemerkungen:Auf der Web-Seite http://www.gm.fh-koeln.de/ehses/ap finden Sie die vordefinierten Quelltexte.

Bei dieser Aufgabe geht es um die Beschäftigung mit Sortieralgorithmen und um den Zusammenhang Laufzeitkomplexität und O-Notation. Soweit diese Fragen in der Vorlesung noch nicht behandelt wurden, orientieren Sie sich an dem AP2-Skript!

Aufgabe 1) Implementieren Sie den Kern der Algorithmen in Insertionsort , Selectionsort. und Bubblesort. Beachten Sie die angegebenen Kommentare.

Für die Erzeugung der Ausgaben sind die Funktionen array() (ganzes Feld) und direct() (Feld mit Trennstrich) der Klasse Tracer zu verwenden. Vergleichen Sie die Ausgabe mit dem im Kommentar vorgegebenen Ablauf.

Beurteilen Sie das Laufzeitverhalten der Sortieralgorithmen und vergleichen Sie dieses mit dem der Bibliotheksfunktion. Können Sie für die Algorithmen eine einfache Formel aufstellen, mit der sich die Laufzeit für ein Array bekannter Größe ermitteln lässt?

Experimentieren Sie, indem Sie Vorhersagen für neue Arraygrößen treffen.

Aufgabe 2) (auf Papier) Leiten Sie für den Algorithmus Selectionsort eine exakte Formel für die Anzahl der Vergleiche beim Sortieren eines Feldes der Länge N her.

Aufgabe 3) (auf Papier) Das Problem „Türme von Hanoi“ (Edouard Lucas, 1892) verfügt über 3 Plätze. Auf dem ersten Platz liegen N unterschiedlich große Scheiben. Am Ende sollen alle Scheiben auf dem dritten Platz liegen (der Platz 2. dient als Hilfsfeld). Es liegt nie eine größere auf einer kleineren Scheibe.

In Pseudocode lautet ein Lösungsalgorithmus:

bewegeStapel(n, von, nach, hilf):

wenn n > 0:

bewegeStapel(n – 1, von, hilf, nach)

bewege die oberste Scheibe von 'von' nach 'nach' bewegeStapel(n – 1, hilf, nach, von)

Zeigen Sie mit vollständiger Induktion, dass der Aufruf bewegeStapel(N, a, b, c) zu genau 2N-1 Bewegungen einer Scheibe führt.

Vollständige Induktion bedeutet:

1. Man zeigt, dass die Behauptung für N = 1 gilt.

2. Man zeigt, dass die Behauptung für N+1 gilt, falls sie für N gilt.

Wieviele Jahre brauchen die Mönche in Hanoi für das Verlegen eines 64er Stapels, wenn sie pro Scheibe eine Sekunde benötigen? (Wie lautet die „Legende“?)

Referenzen

ÄHNLICHE DOKUMENTE

Vervollständigen Sie Datei: util/Array.java um die noch fehlenden Methodenimplemen- tierungen, so dass sich eine funktionsfähige Klasse ergibt, die ein

2. Der Algorithmus verwendet einen LIFO-Stack. Er entspricht dem Verfahren der rekursiven Baumtraversierung. Häufig wird anstelle der hier verwendeten Implementierung das

Dieses Praktikum ist eine Variante des Praktikums 8. Anstelle der Codegenerierung wird hier der erzeugte Syntaxbaum direkt interpretiert. Es gibt zwei Baumoperationen:

Beschreiben Sie einen Zufallsvorgang aus dem t¨aglichen Leben oder den Naturwissenschaften, der durch eine normalverteilte Zufallsgr¨oße beschrieben werden kann.. Geben Sie

[r]

In der Vorlesung haben wir die nichtzentrale hypergeometrische Verteilung hergeleitet, indem wir von einer Produkt-Polynomial-Verteilung mit festem Rand {k i.. } ausgegangen sind

Der AIDS-Test liefert bei einer HIV-infizierten Person immer ein positives Testergebnis. Bei nicht HIV- infizierten Personen schl¨agt der Test mit Wahrscheinlichkeit

Wir berechnen f¨ur jede Position vom Reis Chromosom 1 einen score, der angibt, wie wahrscheinlich sich diese Position in einem kodierenden Exon befindet.. Unser Ziel be- steht