• Keine Ergebnisse gefunden

Aufgabe1Zeitaufwand (14Punkte) ¨Ubungsblatt9:Software-EntwicklungI(WS2006/07) TUKaiserslautern

N/A
N/A
Protected

Academic year: 2022

Aktie "Aufgabe1Zeitaufwand (14Punkte) ¨Ubungsblatt9:Software-EntwicklungI(WS2006/07) TUKaiserslautern"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Prof. Dr. A. Poetzsch-Heffter Dipl.-Inform. J. O. Blech Dipl.-Inform. M. J. Gawkowski Dipl.-Inform. N. Rauch

TU Kaiserslautern

Fachbereich Informatik AG Softwaretechnik

Ubungsblatt 9: Software-Entwicklung I (WS 2006/07) ¨

Ausgabe: 19. Dezember 2006 Abgabe: 8. Januar 2007, 12.00 Uhr Abnahme praktischer Teil: 8. - 12. Januar 2007

Aufgabe 1 Zeitaufwand (14 Punkte)

a) Beweisen Sie, dass die Funktion g(y) =y+y2 + 10000 in O(n2) liegt. (3 Punkte) b) Geben Sie eine Tabelle an, aus der hervorgeht, ob die folgenden Funktionen in O(1), O(n),

O(n2), O(2n),O(logn) oder O(nlogn) liegen.

1. f(n) = 4n 2. g(n) =n+ n3

3. h(n) = 2nlogn+n2+ 20 4. i(n) = n3+en n

5. j(n, m) =n2+m 6. k(n) = 2·m

(4 Punkte)

c) Zeigen Sie, dass folgende Enthaltenseinsbeziehungen gelten:

• O(2)⊆O(n)

• O(nlogn)⊆O(n3)

(4 Punkte) d) Bestimmen Sie f¨ur die beiden folgenden Codefragmente die FunktionC(n), welche die Anzahl der Aufrufe der Methodem() in Abh¨angigkeit von dem Wert der Variablenn ermittelt. Geben Sie jeweils eine nachvollziehbare Herleitung der Funktion an. Geben Sie jeweils an, ob C(n) in O(1), O(n), O(n2),O(2n),O(logn) oder O(nlogn) liegt.

int i;

for(i=1; i<= n+1; i++) { int j=2*n;

while(j>=i) { m();

m();

j--;

} }

(2)

int i=1;

if (i<=n) { do {

for(int j=i; j<=n; j++) { for(int k=1; k<=j; k++) {

m();

} i++;

m();

}

} while (i<=n);

}

(3 Punkte)

Aufgabe 2 Zweidimensionale Suchb¨ aume (praktisch) (8 Punkte)

Analog zu den bin¨aren Suchb¨aumen aus der Vorlesung sollen Sie in dieser Aufgabe zweidimen- sionale Suchb¨aume zur Abspeicherung von Koordinaten implementieren. Das heisst, dass Paare von Zahlen in Suchb¨aumen abgespeichert werden. Die Koordinaten sollen prim¨ar nach der ersten Koordinate geordnet sein, sekund¨ar nach der zweiten.

Benutzen Sie folgende Signaturen:

boolean contains( Dim2Tree b, int xcoord, int ycoord ) { ... }

static void printTree( Dim2Tree b ) { ... }

static void sortedInsert( Dim2Tree, int xcoord, int ycoord ) { ... }

static Dim2Tree mkBinTree( int xcoord,int ycoord ) { ... }

Definieren Sie eine Klasse Dim2Tree, erg¨anzen Sie die Funktionsprozeduren und Testen Sie Ihre Baumimplementierung. Geben Sie einige Ihrer Testf¨alle mit ab.

Aufgabe 3 Mergesort vs. Quicksort (praktisch) (8 Punkte)

a) Implementieren Sie in Java Mergesort und Quicksort (vgl. Vorlesung) prozedural f¨ur Arrays von ganzen Zahlen.

b) Testen Sie Ihre Programme f¨ur hinreichend große Eingaben. Insbesondere soll ein Array von 20000000 Zahlen sortiert werden, dessen Elemente mit Hilfe folgender Funktion gef¨ullt werden:

static void fill() {

for (int i=0; i<=maxIndex; i++) {

array[i] = (987654321 % (12345 + i)) % 100 ; } }

Stoppen Sie die Zeit, die die Programme f¨ur diese und andere Eingaben ben¨otigen, zum Beispiel mit dem Unix Kommando time.

c) Welchen Aufwand haben Merge bzw. Quicksort, welchen Zusammenhang stellen Sie bez¨uglich Ihrer gemessenen Zeit fest? Wie erkl¨aren Sie sich Ihre Beobachtungen?

Referenzen

ÄHNLICHE DOKUMENTE

[r]

i) xs ist zulässiger Parameter in dem Funktionsaufruf (tuples

[r]

22 public Buchung buchen(String von,String nach, String wann, String fluglinie,String kunde){. 23 Flug flug

Aufgabe 3 Störe meine Kreise nicht 2. interface

Uberprufen Sie fur jeden Satz, ob seine Syntax korrekt ist und ob ihm eine Seman- tik zugeordnet werden kann.. Geben sie eine kurze(!) Begrundung, falls diese Kriterien

– lege oberste Karte vom ersten auf den zweiten Stapel – wiederhole Folgendes f¨ ur alle Karten auf dem ersten Stapel:. pr¨ ufe, ob die aktuelle Kartennummer (oberste Karte vom

Ein weiteres Problem f¨ ur das Testen ist, dass es sehr lange dauert um Ergebnisse großer Zahlen