Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Prüfungen im Bachelor-Studium (1. - 5. Semester) » aud » Forum
Forum
Lösungsversuch
Aufgabe 1 - Wissensfragen (15P)
a) falsch
b) [kann mich nicht erinnern ob das Teil des Stoffes war]
c) falsch
d) [nicht in Vorlesung durchgenommen]
e) richtig
f) [nicht in Vorlesung durchgenommen]
g) 1. und 3. Antwort richtig
h) falsch
i)
falsch
richtig
falsch - eher richtig, siehe https://fsi.informatik.uni-erlangen.de/forum/thread/8853-Klausur-17-9-07
falsch
j) falsch
k) falsch
Aufgabe 2 - Java (12P)
- Beispiel: c: Test
- a: Test
- b: 42
- c: 0
- f: 0
- Compiler-Fehler: Ambiguous Method
- e: 23
Aufgabe 3 - Spannbäume (20P)
a) Adjazenzmatrix
b)
c)
d) Halde - Begründung???
e)
- genau n
- genau n - 1
- genau 1
- O (|V| * log |V| + |E|)
Aufgabe 4 - Suchbaum und Streutabelle (15P)
a)
b)
- Bester Fall: 1
- Schlechtester Fall: n - 1
c) 6, 4, 8, 2, 5, 7, 1
d)
- Preorder
- Inorder (produziert im binären Suchbaum sortierte Liste)
- Postorder
e)
3|7(3)|-|1|4|-|2|5|6(4)|-|
Aufgabe 6 - QuickSort
public class QuickSort {
public static void main(String[] args) {
int[] array = { 20, 35, -15, 7, 55, 1, -22,56,-8,100,-202 };
System.out.println(quickSelect(array, 6));
quickSort(array);
}
// v e r t a u s c h t zwei Positionen e i n e r Reihung
static void swap(int a[], int i, int j) {
int t = a[i];
a[i] = a[j];
a[j] = t;
}
// s o r t i e r t di e komplette Reihung
static void quickSort(int a[]) {
quickSortAuf(a, 0, a.length - 1);
}
// s o r t i e r t den Bereich von s t a r t b i s end ( i n k l u s i v e )
static void quickSortAuf(int a[], int start, int end) {
if (start >= end) {
return;
}
int pivot = a[start];
int i = start;
int k = end;
while (i < k) {
while (i < k && a[i] < pivot)
i++;
while (i < k && a[k] > pivot)
k--;
if (i < k) {
swap(a, i, k);
}
}
quickSortAuf(a, start, i); quickSortAuf(a, i + 1, end); }
static int quickSelect(int a[], int r) {
int[] tmp = new int[a.length];
System.arraycopy(a, 0, tmp, 0, a.length);
return quickSelect(tmp, 0, tmp.length - 1, r);
}
// sucht im Bereich von s t a r t b i s end ( i n k l u s i v e )
// nach dem rg r o e s s t e n Element
static int quickSelect(int a[], int start, int end, int r) {
System.out.println(Arrays.toString(a));
if(r>=start && r <= end && start <end) {
int pivot = a[start];
int i = start;
int k = end;
while (i < k) {
while (i < k && a[i] < pivot)
i++;
while (i < k && a[k] > pivot)
k--;
if (i < k) {
swap(a, i, k);
}
}
quickSelect(a, start, i,r);
quickSelect(a, i+1, end,r);
}
return a[r];
}
