• Keine Ergebnisse gefunden

186.172 Algorithmen und Datenstrukturen 1 VL 4.0 1. ¨Ubungstest SS 2011 15. April 2011

N/A
N/A
Protected

Academic year: 2022

Aktie "186.172 Algorithmen und Datenstrukturen 1 VL 4.0 1. ¨Ubungstest SS 2011 15. April 2011"

Copied!
8
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Technische Universit¨at Wien

Institut f¨ur Computergraphik und Algorithmen Arbeitsbereich f¨ur Algorithmen und Datenstrukturen

186.172 Algorithmen und Datenstrukturen 1 VL 4.0 1. ¨ Ubungstest SS 2011

15. April 2011

Machen Sie die folgenden Angaben bitte in deutlicher Blockschrift:

Nachname: Vorname:

Matrikelnummer: Studienkennzahl:

Anzahl abgegebener Zusatzbl¨atter:

Legen Sie bitte Ihren Studentenausweis vor sich auf das Pult.

Sie k¨onnen die L¨osungen entweder direkt auf die Angabebl¨atter oder auf Zusatzbl¨atter schreiben, die Sie auf Wunsch von der Aufsicht erhalten. Es ist nicht zul¨assig, eventuell mitgebrachtes eigenes Papier zu verwenden.

Die Verwendung von Taschenrechnern, Mobiltelefonen, Skripten, B¨uchern, Mitschriften, Ausarbeitungen oder vergleichbaren Hilfsmitteln ist unzul¨assig.

Die Arbeitszeit betr¨agt 55 Minuten.

A1: A2: A3: Summe:

Erreichbare Punkte: 16 16 18 50

Erreichte Punkte:

Viel Erfolg!

(2)

Aufgabe 1.A: Ω/O/Θ-Notation (16 Punkte)

a) (12 Punkte)

• Bestimmen Sie jeweils die Laufzeit der unten angegebenen Codest¨ucke A und B in Abh¨angigkeit von n in Θ-Notation.

• Welchen Wert haben die Variablen a und b jeweils nach dem Ausf¨uhren der Codest¨ucke A und B in Abh¨angigkeit von n in Θ-Notation?

A a=n; b= 1;

c= 1;

f¨ur i= 1, . . . , n { a=a+ 1;

b =b+ 1;

} c=a·b

solangec > 1{

f¨ur i= 1, . . . ,⌊logn⌋{ b=b+ 1;

}

c=c−a; }

B a= 1;

b= 1;

f¨ur i= 1, . . . , n { solange a < n {

a=a+ 1;

falls a <logn dann { b = 2·b;

} } } a=b2;

f¨ur k = 1, . . . , a { b = 2·k+b; }

b) (4 Punkte)

Gegeben ist die folgende Funktion:

f(n) =





n2·log(nn) +n2·√3

n, falls n ungerade und n >100 4·n3+n3·log(n2) +n2, falls n gerade

n4+n3+n, sonst

Kreuzen Sie in der folgenden Tabelle die zutreffenden Felder an:

(Jede Zeile wird nur dann gewertet, wenn sie vollst¨andig richtig ist.) f(n) ist Θ(.) O(.) Ω(.) keines

n3·logn n3·√3

n n2·√3

n n3

(3)

Aufgabe 2.A: Sortierverfahren und Datenstrukturen (16 Punkte) a) (16 Punkte) Schreiben Sie in detailliertem Pseudocode eine Funktion bucketSort(L, min, max), die eine einfach verkettete Liste mit dem Verweis L auf das erste Listenelement aufsteigend nach dem Prinzip Bucket-Sort sortieren soll. minstellt den kleinsten und max den gr¨oßten Inhalt der Liste dar. Folgende Punkte sind zu beachten:

• Die Liste enth¨alt n Elemente, wobei gilt:n ≥1.

• L soll am Ende Ihres Algorithmus auf das erste Element der sortierten Liste verweisen.

• Der Inhalt der jeweiligen Listenelemente ist aus der Menge der nat¨urlichen Zahlen N.

• Die Anzahl der verwendeten Buckets m soll h¨ochstens m=max−min+ 1 betragen.

Geben Sie f¨ur Ihren Algorithmus den Zeitaufwand f¨ur den Worst-Case in Θ- Notation in Abh¨angigkeit der Anzahl n der zu sortierenden Elemente und der Anzahlm der ben¨otigten Buckets an.

Handelt es sich bei Ihrer Implementierung um ein stabiles Sortierverfahren?

Begr¨unden Sie Ihre Antwort.

(4)

Aufgabe 3.A: Such- und Sortierverfahren (18 Punkte)

a) (10 Punkte) Gegeben sei folgender bin¨arer Baum T1:

30

10

20 80

32

8

60 35

11 6

Wurzel

• Handelt es sich beiT1um einen AVL-Baum? Falls nicht geben SiealleGr¨unde, an warum es sich um keinen AVL-Baum handelt und kennzeichnen diese im Baum T1.

• Geben Sie die Post-, Pre- und Inorder Traversierungsreihenfolgen von T1 an.

• Sollte T1 kein AVL-Baum sein, zeichnen Sie einen AVL-Baum T2, der die gleichen Knoten und die gleiche Preorder Traversierungsreihenfolge wie T1

hat.

b) (8 Punkte)

Gegeben sind folgende Zahlen:

h12,12,3,2,103,103,3,2i

Diese Zahlen sollen mit Hilfe des Verfahrens Insertion Sort aufsteigend sortiert werden.

• Geben Sie die Zahlenfolge nach jeder Iteration der ¨außeren Schleife an.

Unterstreichen Sie dabei jeweils die Elemente, die ihre Position ver¨andert haben und kreisen Sie alle Schl¨ussel ein, die bereits Ihre endg¨ultige Position erreicht haben.

• Wieviele Schl¨usselvergleiche und Schl¨usselbewegungen sind bei einer bereits aufsteigend sortierten Folge in Abh¨angigkeit der Anzahlnder zu sortierenden Schl¨ussel notwendig, wenn diese erneut mit Insertion Sort aufsteigend sortiert wird?

(5)

Technische Universit¨at Wien

Institut f¨ur Computergraphik und Algorithmen Arbeitsbereich f¨ur Algorithmen und Datenstrukturen

186.172 Algorithmen und Datenstrukturen 1 VL 4.0 1. ¨ Ubungstest SS 2011

15. April 2011

Machen Sie die folgenden Angaben bitte in deutlicher Blockschrift:

Nachname: Vorname:

Matrikelnummer: Studienkennzahl:

Anzahl abgegebener Zusatzbl¨atter:

Legen Sie bitte Ihren Studentenausweis vor sich auf das Pult.

Sie k¨onnen die L¨osungen entweder direkt auf die Angabebl¨atter oder auf Zusatzbl¨atter schreiben, die Sie auf Wunsch von der Aufsicht erhalten. Es ist nicht zul¨assig, eventuell mitgebrachtes eigenes Papier zu verwenden.

Die Verwendung von Taschenrechnern, Mobiltelefonen, Skripten, B¨uchern, Mitschriften, Ausarbeitungen oder vergleichbaren Hilfsmitteln ist unzul¨assig.

Die Arbeitszeit betr¨agt 55 Minuten.

B1: B2: B3: Summe:

Erreichbare Punkte: 18 16 16 50

Erreichte Punkte:

Viel Gl¨uck!

(6)

Aufgabe 1.B: Such- und Sortierverfahren (18 Punkte)

a) (8 Punkte)

Gegeben sind folgende Zahlen:

h15,15,2,3,17,17,2,3i

Diese Zahlen sollen mit Hilfe des Verfahrens Insertion Sort aufsteigend sortiert werden.

• Geben Sie die Zahlenfolge nach jeder Iteration der ¨außeren Schleife an.

Unterstreichen Sie dabei jeweils die Elemente, die ihre Position ver¨andert haben und kreisen Sie alle Schl¨ussel ein, die bereits Ihre endg¨ultige Position erreicht haben.

• Wieviele Schl¨usselvergleiche und Schl¨usselbewegungen sind bei einer bereits aufsteigend sortierten Folge in Abh¨angigkeit der Anzahlnder zu sortierenden Schl¨ussel notwendig, wenn diese erneut mit Insertion Sort aufsteigend sortiert wird?

b) (10 Punkte) Gegeben sei folgender bin¨arer Baum T1:

• Handelt es sich beiT1um einen AVL-Baum? Falls nicht geben SiealleGr¨unde, an warum es sich um keinen AVL-Baum handelt und kennzeichnen diese im Baum T1.

• Geben Sie die Post-, Pre- und Inorder Traversierungsreihenfolgen von T1 an.

• Sollte T1 kein AVL-Baum sein, zeichnen Sie einen AVL-Baum T2, der die gleichen Knoten und die gleiche Preorder Traversierungsreihenfolge wie T1

hat.

(7)

Aufgabe 2.B: Ω/O/Θ-Notation (16 Punkte) a) (4 Punkte)

Gegeben ist die folgende Funktion:

f(n) =





n3·log(nn) +n3·√3 n, falls n gerade und n >100 4·n3+n4·log(n2) +n2, falls n ungerade

n5+n3+n, sonst

Kreuzen Sie in der folgenden Tabelle die zutreffenden Felder an:

(Jede Zeile wird nur dann gewertet, wenn sie vollst¨andig richtig ist.) f(n) ist Θ(.) O(.) Ω(.) keines

n3·√3 n n3 n2·√3n n3·logn b) (12 Punkte)

• Bestimmen Sie jeweils die Laufzeit der unten angegebenen Codest¨ucke A und B in Abh¨angigkeit von n in Θ-Notation.

• Welchen Wert haben die Variablen a und b jeweils nach dem Ausf¨uhren der Codest¨ucke A und B in Abh¨angigkeit von n in Θ-Notation?

A a= 1;

b= 1;

f¨ur i= 1, . . . , n { solange b < n{

b=b+ 1;

falls b <logn dann { a = 2·a;

} } } b=a2;

f¨ur k = 1, . . . , b { a= 2·k+a;

}

B a=n;

b= 1;

c= 1;

f¨ur i= 1, . . . , n{ a=a+ 1;

b =b+ 1;

} c=a·b

solange c >1{

f¨ur i= 1, . . . ,⌊logn⌋{ a=a+ 1;

}

c=c−b;

}

(8)

Aufgabe 3.B: Sortierverfahren und Datenstrukturen (16 Punkte) a) (16 Punkte) Schreiben Sie in detailliertem Pseudocode eine Funktion bucketSort(L, min, max), die eine einfach verkettete Liste mit dem Verweis L auf das erste Listenelement aufsteigend nach dem Prinzip Bucket-Sort sortieren soll. minstellt den kleinsten und max den gr¨oßten Inhalt der Liste dar. Folgende Punkte sind zu beachten:

• Die Liste enth¨alt n Elemente, wobei gilt:n ≥1.

• L soll am Ende Ihres Algorithmus auf das erste Element der sortierten Liste verweisen.

• Der Inhalt der jeweiligen Listenelemente ist aus der Menge der nat¨urlichen Zahlen N.

• Die Anzahl der verwendeten Buckets m soll h¨ochstens m=max−min+ 1 betragen.

Geben Sie f¨ur Ihren Algorithmus den Zeitaufwand f¨ur den Worst-Case in Θ- Notation in Abh¨angigkeit der Anzahl n der zu sortierenden Elemente und der Anzahlm der ben¨otigten Buckets an.

Handelt es sich bei Ihrer Implementierung um ein stabiles Sortierverfahren?

Begr¨unden Sie Ihre Antwort.

Referenzen

ÄHNLICHE DOKUMENTE

(a) Bestimmen Sie die Struktur der elliptischen Kurven (als Gruppen), die durch die Glei- chungen y 2 = x 3 + ax f¨ ur a = 1, 2, 3 ¨ uber F 17 gegeben sind (dazu ist die Software

F¨ur die Analyse von Sortierverfahren sind neben der reinen Laufzeit auch zwei weitere Kenngr¨oßen h¨aufig von großer Bedeutung. Nennen Sie diese beiden Kenn- gr¨oßen und geben Sie

a) (6 Punkte) Kreuzen Sie in der folgenden Tabelle die stabilen Sortierverfahren an und geben Sie die Best- und Worst-Case Laufzeit, in Abh¨angigkeit von der Anzahl der zu

Geben Sie f¨ur Ihren Algorithmus den Aufwand f¨ur den Worst-Case in Θ-Notation in Abh¨angigkeit der Anzahl n der Schl¨ussel, die in dem bin¨aren Baum gespeichert sind, an.. b)

• Geben Sie f¨ur einen beliebigen vollst¨andigen, ungerichteten Graphen die genaue Anzahl der in F gespeicherten Kanten, in Abh¨angigkeit der Anzahl der Knoten.. | V

Aufgabe 1.A: Suchen und Graphen (20 Punkte) a) (12 Punkte) Schreiben Sie in detailliertem Pseudocode eine Funktion kreissuche(V, E ), die ¨uberpr¨uft, ob ein

Gegeben seien zwei unabh¨ angige Hashtabellen mit Tabellengr¨oße m = 7 in denen bereits Schl¨ussel eingef¨ugt wurden.. Auf den Wert sowie auf das Gewicht des i-ten Gegenstandes kann

Da sie Angst haben, dass ihre Nachrichten mitgelesen werden, kreieren sie dazu einen geheimen Schl ¨ussel mithilfe des Diffie-Hellman Schl ¨usselaustausches.. Sei G = (Z/77, +)