• Keine Ergebnisse gefunden

7. Übungsblatt Hinweis: neben den hier beschriebenen Aufgaben müssen Sie Ihre vollständige Implementierung von Mergesort und die Implementierung von FString

N/A
N/A
Protected

Academic year: 2022

Aktie "7. Übungsblatt Hinweis: neben den hier beschriebenen Aufgaben müssen Sie Ihre vollständige Implementierung von Mergesort und die Implementierung von FString"

Copied!
3
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Algorithmen und Datenstrukturen Hochschule RheinMain

Sommersemester 2014 Prof. Dr. Steffen Reith

7. Übungsblatt

Hinweis: neben den hier beschriebenen Aufgaben müssen Sie Ihre vollständige Implementierung von Mergesort und die Implementierung von FString prä- sentieren können!

Aufgabe 1 (Basissort)

Im folgenden wollen wir Zahlen in Dezimaldarstellung ohne paar- weises Vergleichen sortieren. Nehmen Sie an, dass Sie 10

”Haufen“ H0 bis H9 haben und gehen Sie wie folgt vor:

i) Sortieren Sie alle Zahlen nach der letzten Ziffer (Ziffer mit dem niedrigsten Stellenwert). Legen Sie dazu alle Zahlen die mit 0 enden in den Haufen H0, alle die mit 1 enden in Haufen H1 usw. Reihen Sie dann die Haufen H0, H1 usw. zu einer neuen Zahlenfolge (Konkatenation).

ii) Nehmen Sie die Zahlenfolge aus dem letzten Schritt und führen Sie das gleiche Verfahren aus, nehmen Sie nun aber die vorletzte Ziffer der Zahl (z.B. 34523 kommt in Haufen H2).

iii) Wiederholen Sie die Schrittei)bzw. ii)bis Sie die höchstwertige Ziffer bearbeitet haben. Nun ist Ihre Zahlenfolge sortiert.

Beobachtung: Dieses Vorgehen funktioniert natürlich auch mit je- der anderen Zahlendarstellung, d.h. insbesondere mit Binär- oder Hexadezimalzahlen.

7260 9019 4816 8926 0690 3276 1230 0823 1202 5621

• Sortieren Sie die angegeben Zahlen mit dem oben beschriebenen Verfahren von Hand und geben Sie auch alle Zwischenschritte an.

• Zeichen Sie ein Struktogramm für Algorithmus 1.

• Implementieren Sie dieses Verfahren mit Hilfe von C (AI) oder Ruby (WI), um natürliche Zahlen zu sortieren.

(2)

Data: Feld A mit n Komponenten

Result: Sortiertes Feld A mit A[0]A[1]A[2]≤ · · · ≤A[n1]

begin Fach0[n];

Fach1[n];

/* Bearbeite alle Bits der Zahlen */

for(i = 0 to #Bits ) do for (j = 0 to n ) do

if ((Das i-te Bit des A[j])=0) then lege A[j]in das Fach0;

else

lege A[j]in das Fach1;

end end

/* Verbinde Fach0 und Fach1 (Concat) */

A = Fach0 || Fach1;

end return A;

end Algorithm 1: BasisSort

• Bestimmen Sie die Laufzeit von Algorithmus 1 in Abhängigkeit von der Anzahl der zu sortierenden Zahlen.

Hinweis: Natürlich gilt #Bits = log2(A[i])für 0 i n−1, d.h. die- se Zahl ist für einen gewählten Datentyp (z.B. int) konstant. Bei Ruby richtet sich #Bits einfach nach der größten Zahl, die Ihr Pro- gramm nach sortieren kann, z.B. 32 bei Zahlen < 232.

Aufgabe 2 (Rekursion und Strings)

Implementieren Sie eine rekursive Funktion reverse (ohne for- Schleifen), die einen beliebigen String umdreht.

Eine C-Implementierung darf kein malloc verwendet. Dabei muss der Funktion mit rstr schon ein Pointer auf einen ausreichend großen Speicherblock übergeben werden. Als einzige Funktion aus string.h darf strlen verwendet werden.

Für Ruby sind diese Einschränkungen unnötig!

Aufgabe 3 (O-Notation)

Für die Teilaufgaben (a) und (b) ist eine Begründung nicht notwen- dig.

1. Gegeben sind die folgenden acht Funktionen:

2

(3)

i

gi(n) log(3logn) 1 23n 3n2 22n 2n2n7+102 log5n nlnn

Füllen Sie die obere Zeile der Tabelle mit Zahlen von 1 bis 8 so aus, dass dann gi(n) O(gi+1(n)) gilt, wenn 1 i 7.

2. Weiterhin sind die folgenden vier Funktionen gegeben:

f(n) = 1 + 2n+ 3n+ 4n2+ 5n3

g(n) = 20n5n8+3n6 2

h(n) = (n+ 42)5 +log2n

k(n) = 2log2(3n+7)

Füllen Sie die folgenden leeren Boxen mit Symbolen aus der Menge {∈,̸∈,⊆,⊇} so, dass sich korrekte Aussagen ergeben:

k(n) O(11·g(n)) g(n) O(f(n)) O(h(n)) O(k(n)) O(f(n)) O(h(n))

3. Geben Sie die Menge aller Funktionen in O(2n) an. Warum ist die Funktion 3n nicht in dieser Menge enthalten?

Hinweis: Nehmen Sie an, dass 3n O(2n) und versuchen Sie mit der dann geltenden Ungleichung einen Widerspruch zu er- zeugen.

Die Abnahme der Lösungen zu diesen Aufgaben findet erst in der KW 23 ab dem 5. Juni 2014 nach der Vorlesung statt. Die Termine für die WI-Gruppen gibt Herr Werntges bekannt!

3

Referenzen

ÄHNLICHE DOKUMENTE

Für die anderen Entwicklungsregionen, die mit ihren regionalen Währungskooperationen noch nicht so weit sind wie Ostasien, ist vor allem Vorsicht geboten: Die Binnen- und

Der Besetzung der Leitungsposition mit einer bekannten und glaubwürdigen Persönlich- keit aus dem Süden kommt dabei eine zentrale Rolle für die Akzeptanz der Arbeit in den

Gegenanz.: Überempfindlichkeit gegen die Wirkstoffe oder einen der sonstigen Bestandteile; Überempfind- lichkeitsreaktionen in der Anamnese (z. Bronchospasmen, Asthma,

Gegenanzeigen: Keine Anwendung bei Magengeschwüren, Überempfi ndlichkeit gegen die Wirkstoffe, gegen andere Apiaceen (Umbelliferen, z. Anis, Fenchel), gegen Anethol (Bestandteil

knowledge and capacity building for usage, innovation capacities, including ICTs, (c) make the adjustments necessary in the national and international policy

Nun müssen die Staa- ten zeigen, dass sie in der Lage sind, einen kompakten Zielkatalog für eine umfassende globale Agenda zu erstellen, der ambitioniert und fair zugleich ist..

Geht der Patient wieder zu seinem Hausarzt, ist es ein bekannter Fehler, dass der gleiche Arzneistoff von zwei unterschied- lichen Herstellern verordnet werden kann – ein Mal

Die aktuellen Bemühungen zur Reform des Gemeinsamen Europäischen Asylsystems sowie die Bestrebungen, die Zahl der nach Europa einreisenden Schutzsuchenden zu begrenzen, dürfen