Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Prüfungen im Bachelor-Studium (1. - 5. Semester) » aud » Forendiskussionen
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige ÜberarbeitungNächste ÜberarbeitungBeide Seiten, nächste Überarbeitung | ||
pruefungen:bachelor:aud:loesungws15 [05.04.2017 19:32] – uv35imat | pruefungen:bachelor:aud:loesungws15 [07.04.2019 13:22] – Nico Hambauer | ||
---|---|---|---|
Zeile 9: | Zeile 9: | ||
** b) ** 2 und 3 | ** b) ** 2 und 3 | ||
- | ** c) ** 2 | + | ** c) ** 2 || Ziemlich sicher, dass auch 1 richtig ist. |
- | * " | + | * zu 1) (2. Meinung: "(stimmt hier nicht auch 1?)") => wenn man bei der linearen Suche ("< oder " |
- | * Denke ich nicht | + | * zu 2) Lineare Suche überprüft im intervall [0:n] ob das i-te-Element == gesuchte Element ist, wenn das gesuchte Element das erste Element ist, dann ist man sofort fertig. Die binäre Suche braucht dazu mindestends noch ein schritt. |
+ | * zu 3) unsicher, ob das hier eine Rolle spielt | ||
+ | * zu 4) scheidet aus, weil 2 richtig ist | ||
** d) ** 3 | ** d) ** 3 | ||
Zeile 21: | Zeile 23: | ||
* "löst das Rucksackproblem für n Elemente mit O(n^2) zusätzlichem Speicher.": | * "löst das Rucksackproblem für n Elemente mit O(n^2) zusätzlichem Speicher.": | ||
- | ** g) ** 2 | + | ** g) ** 2 |
* unsicher | * unsicher | ||
* Ich denke 4 müsste stimmen | * Ich denke 4 müsste stimmen | ||
Zeile 42: | Zeile 44: | ||
* C 3 (P)-> 4 | * C 3 (P)-> 4 | ||
* D 3 (P)-> 4 (S)-> 0 | * D 3 (P)-> 4 (S)-> 0 | ||
- | * E 0 (P)-> 1 (S)-> 4 (S)-> 2 | + | * E 0 (S)-> 1 (P)-> 4 (S)-> 2 |
==== Aufgabe 3 Binäre Suche ==== | ==== Aufgabe 3 Binäre Suche ==== | ||
Zeile 106: | Zeile 108: | ||
<code java> | <code java> | ||
- | void sort(String[] a) { | + | void sortierenDurchEinfuegen(String[] a) { |
- | String | + | String |
- | + | ||
- | for (int n = 1; n < a.length; n++) { | + | for (int n = 1; n < a.length; n++) { |
- | temp | + | tmp = a[n]; // entnommenes Element merken |
- | | + | int i = n - 1; |
- | while (i >= 0 && | + | while (i >= 0 && |
- | a[i + 1] = a[i]; | + | a[i + 1] = a[i]; |
- | i--; | + | i--; |
- | } | + | |
- | + | ||
- | a[i + 1] = temp; // entnommenes Element | + | |
- | // einsetzen | + | |
} | } | ||
+ | |||
+ | a[i + 1] = tmp; // entnommenes Element | ||
+ | // einsetzen | ||
} | } | ||
+ | } | ||
Zeile 215: | Zeile 217: | ||
sammle(am, | sammle(am, | ||
ergebnis.add(verb); | ergebnis.add(verb); | ||
+ | //einfacher waere hier statt den letzten drei zeilen folgendes: | ||
+ | // | ||
} | } | ||
Zeile 226: | Zeile 230: | ||
for (int j=0; | for (int j=0; | ||
if (am[i][j]){ | if (am[i][j]){ | ||
- | if (vs.contains(i) && vs.contains(j)){ | + | if |
- | // ok | + | |
- | } | + | am[j][i] = false; |
- | else { | + | |
- | am[i][j] = false; | + | |
} | } | ||
} | } | ||
Zeile 260: | Zeile 262: | ||
< | < | ||
- | ** a) ** collect(Node(g, | + | ** a) ** |
+ | | ||
+ | * collect(Edge(g, | ||
- | ** b) | + | ** b) ** |
- | path(Node(g, | + | * path(Node(g, |
+ | * path(Edge(g, | ||
- | path(Edge(g, a, b), x, y) = true falls (path(g, x, a) ^ path(g, | + | ** c) ** |
- | path(g, x, y) sonst | + | * isRoot(Edge(g, a, b), x) = isRoot(g,x) falls x!=b |
+ | false sonst | ||