MINT lernen

Übung — AFB III (Verallgemeinern und Reflektieren)

Zehn Aufgaben zum Begründen und Beurteilen — von Gegenbeispielen über Beweise bis zu Stellungnahmen zu Zeit und Speicher.

Dein Fortschritt:
0 / 0 Aufgaben
3

Aufgabenblock — AFB III

Begründen statt nur ausführen: Behauptungen widerlegen, Verfahren entwerfen und verändern, Formeln beweisen, Laufzeiten beurteilen und Stellung nehmen. Jede Aufgabe hat ein prüfbares Kernergebnis — formuliere die Begründung trotzdem in ganzen Sätzen, bevor du die Musterlösung aufklappst.

A1
Höchstens die Hälfte?
AFB III

Tom behauptet: „Die binäre Suche braucht nie mehr als \(\frac{n}{2}\) Vergleiche.“ Widerlegen Sie die Behauptung mit einem Gegenbeispiel.

Geben Sie für Ihr Gegenbeispiel \(n = 3\) die Zahl der Vergleiche im ungünstigsten Fall an.

Strategie: Kleine \(n\) durchprobieren und mit \(\frac{n}{2}\) vergleichen.Warum so? Eine Aussage mit „nie“ fällt durch ein einziges Gegenbeispiel.
Lösungsskizze: \(n = 3\): Mitte Index 1; fehlt der Wert, folgt ein zweiter Vergleich.
Musterlösung anzeigen

Musterlösung: Für \(n = 3\) wird zuerst Index 1 verglichen; liegt \(x\) darunter oder darüber, folgt ein zweiter Vergleich — 2 Vergleiche, aber \(\frac{3}{2} = 1{,}5\). Die Behauptung ist widerlegt. Richtig ist \(\lfloor\log_2 n\rfloor + 1\); erst ab \(n = 6\) liegt das nie über \(\frac{n}{2}\).

A2
Minimum und Maximum zugleich
AFB III

Minimum und Maximum einer Reihung einzeln zu suchen kostet \(2(n-1)\) Vergleiche. Entwerfen Sie ein Verfahren, das die Elemente paarweise betrachtet und mit weniger Vergleichen auskommt.

Wie viele Vergleiche braucht Ihr Verfahren für \(n = 100\)?

Strategie: Erst die beiden Elemente eines Paares miteinander vergleichen.Warum so? Das kleinere kann nur neues Minimum, das größere nur neues Maximum werden — je Paar genügen 3 statt 4 Vergleiche.
Lösungsskizze: Erstes Paar: 1 Vergleich legt min und max fest. Jedes weitere Paar: 3 Vergleiche.
Musterlösung anzeigen

Musterlösung: Das erste Paar setzt mit einem Vergleich min und max. Für jedes weitere Paar \((a, b)\): a mit b vergleichen, dann das kleinere mit min und das größere mit max. Bei geradem \(n\): \(1 + 3 \cdot \frac{n-2}{2} = \frac{3n}{2} - 2\), für \(n = 100\) also 148 statt 198. Die Klasse bleibt \(O(n)\), der Faktor sinkt von 2 auf 1,5.

A3
Bubblesort allgemein
AFB III

Beweisen Sie, dass Bubblesort ohne Abbruchbedingung für jede Eingabe der Länge \(n\) genau \(\frac{n(n-1)}{2}\) Vergleiche ausführt.

Wie viele Vergleiche sind es für \(n = 50\)?

Strategie: Zählen Sie die Vergleiche pro Durchlauf.Warum so? Ohne Abbruch hängt die Schleifenstruktur nur von \(n\) ab, nicht von den Daten.
Lösungsskizze: Durchlauf 1: \(n - 1\) Vergleiche, Durchlauf 2: \(n - 2\), …, letzter Durchlauf: 1.
Musterlösung anzeigen

Musterlösung: Im Durchlauf \(i\) (ab 0) vergleicht die innere Schleife die Paare an den Positionen 0 bis \(n - 2 - i\): \(n - 1 - i\) Vergleiche, unabhängig von den Werten. Summe über \(i = 0, \ldots, n - 2\): \((n-1) + \ldots + 1 = \frac{n(n-1)}{2}\). Für \(n = 50\): 1225.

A4
Das richtige n₀
AFB III

Es soll \(T(n) = 3n^2 + 20n \in O(n^2)\) mit der Konstanten \(c = 4\) gezeigt werden. Zeigen Sie, ab welchem \(n_0\) die Ungleichung \(T(n) \le 4n^2\) gilt, und geben Sie das kleinste \(n_0\) an.

Strategie: Die Ungleichung nach \(n\) umformen.Warum so? Ein zu kleines \(c\) lässt sich durch ein größeres \(n_0\) ausgleichen.
Lösungsskizze: \(3n^2 + 20n \le 4n^2 \Leftrightarrow 20n \le n^2 \Leftrightarrow 20 \le n\).
Musterlösung anzeigen

Musterlösung: Für \(n > 0\) ist \(3n^2 + 20n \le 4n^2\) gleichwertig zu \(20 \le n\). Mit \(c = 4\) und \(n_0 = 20\) ist die Definition erfüllt. Probe: \(n = 20\): \(1200 + 400 = 1600 = 4 \cdot 400\); \(n = 19\): \(1083 + 380 = 1463 > 1444\).

A5
Wer gewinnt bei 1024?
AFB III

Algorithmus A braucht \(100 \cdot n \cdot \log_2 n\), Algorithmus B \(n^2\) Schritte. Beurteilen Sie für \(n = 1024\), welcher Algorithmus schneller ist, und ordnen Sie das Ergebnis in das asymptotische Verhalten ein.

Geben Sie den Unterschied B − A in Schritten an.

Strategie: Beide Terme für \(n = 1024 = 2^{10}\) ausrechnen.Warum so? Bei \(n = 2^k\) ist \(\log_2 n = k\) — das macht die Rechnung einfach.
Lösungsskizze: A = 100 · 1024 · 10 = 1 024 000; B = 1024² = 1 048 576.
Musterlösung anzeigen

Musterlösung: A = 1 024 000, B = 1 048 576: A ist knapp schneller (Unterschied 24 576 Schritte, gut 2 %). Der Gleichstand liegt bei \(n = 100 \log_2 n\), also etwa bei \(n \approx 1000\); für kleinere \(n\) gewinnt B, für größere A — und zwar immer deutlicher, weil \(O(n \log n)\) langsamer wächst als \(O(n^2)\).

A6
Umdrehen an Ort und Stelle
AFB III

Implementieren Sie eine Methode static void umdrehen(int[] a), die die Reihenfolge der Elemente in-place umkehrt.

Wie viele Vertauschungen braucht Ihre Methode für eine Reihung mit 11 Elementen?

Strategie: Das erste mit dem letzten Element tauschen, das zweite mit dem vorletzten …Warum so? Läuft die Schleife über die ganze Reihung, wird alles zweimal getauscht — und steht wieder wie vorher.
Lösungsskizze: for (int i = 0; i < a.length / 2; i++) tauscht a[i] und a[a.length - 1 - i].
Musterlösung anzeigen

Musterlösung: for (int i = 0; i < a.length / 2; i++) { int h = a[i]; a[i] = a[a.length - 1 - i]; a[a.length - 1 - i] = h; } — für \(n = 11\) sind das \(\lfloor 11/2 \rfloor = 5\) Vertauschungen; das mittlere Element bleibt stehen. Zeit \(O(n)\), Zusatzspeicher \(O(1)\).

A7
Zeit gegen Speicher
AFB III

Unter 1000 Kundennummern zwischen 0 und 999 999 sollen doppelte gefunden werden. Bewerten Sie die beiden Verfahren „paarweise vergleichen“ und „Markierungsreihung boolean[1_000_000]“.

Geben Sie die Vergleiche des ersten Verfahrens im ungünstigsten Fall und den Zusatzspeicher des zweiten in Byte an.

Strategie: Vergleiche als \(\frac{n(n-1)}{2}\), Speicher als 1 Byte je möglichem Wert.Warum so? Ein Urteil wägt Zeit und Speicher gegeneinander ab — und prüft, was im konkreten Fall knapp ist.
Lösungsskizze: Paarweise: \(\frac{1000 \cdot 999}{2}\). Markierung: \(10^6\) Byte.
Musterlösung anzeigen

Musterlösung: Paarweise: 499 500 Vergleiche, Speicher \(O(1)\). Markierung: 1000 Markierungen, aber 1 MB Speicher (und das Anlegen setzt \(10^6\) Plätze auf false). Bei nur 1000 Werten sind beide Verfahren in Millisekunden fertig; der Speicher der Markierungsreihung ist 250-mal so groß wie die Daten selbst. Hier ist das paarweise Vergleichen völlig ausreichend — bei \(10^6\) Kundennummern wäre die Markierungsreihung klar überlegen.

A8
Einfügen mit binärer Suche
AFB III

Beim Insertionsort wird die Einfügestelle linear gesucht. Verändern Sie das Verfahren so, dass die Einfügestelle im bereits sortierten Teil binär gesucht wird, und beurteilen Sie die neue Laufzeit.

Wie viele Vergleiche braucht das Suchen der Einfügestelle höchstens, wenn der sortierte Teil 1000 Elemente hat?

Strategie: Die Einfügestelle ist der erste Index mit einem Wert größer als das neue Element.Warum so? Vergleiche und Verschiebungen sind getrennt zu zählen.
Lösungsskizze: Binär: \(\lfloor\log_2 1000\rfloor + 1 = 10\). Verschieben: weiterhin bis zu 1000 Elemente.
Musterlösung anzeigen

Musterlösung: Die Suche der Stelle kostet nur noch höchstens 10 statt 1000 Vergleiche; insgesamt sinken die Vergleiche auf \(O(n \log n)\). Die Elemente rechts der Einfügestelle müssen aber weiterhin einzeln verschoben werden — im ungünstigsten Fall \(\frac{n(n-1)}{2}\) Verschiebungen. Die Laufzeit bleibt also \(O(n^2)\); die Änderung lohnt sich nur, wenn Vergleiche viel teurer sind als Verschiebungen (z. B. lange Texte).

A9
Dritteln statt Halbieren
AFB III

Eine „ternäre Suche“ teilt den Bereich mit zwei Vergleichen in drei Teile. Für den ungünstigsten Fall gilt \(V(n) = 2 + V(\frac{n}{3})\), \(V(1) = 1\). Entscheiden Sie, ob sie für \(n = 81\) besser ist als die binäre Suche.

Strategie: Die Rekursionsgleichung Schritt für Schritt auflösen.Warum so? Weniger Schritte heißt nicht weniger Vergleiche, wenn jeder Schritt mehr kostet.
Lösungsskizze: \(V(81) = 2 + V(27) = 4 + V(9) = 6 + V(3) = 8 + V(1)\).
Musterlösung anzeigen

Musterlösung: Ternär: \(V(81) = 9\), binär: \(\lfloor\log_2 81\rfloor + 1 = 7\). Die ternäre Suche braucht zwar nur 4 statt 6 Schritte, zahlt aber je Schritt 2 Vergleiche: \(2 \log_3 n \approx 1{,}26 \log_2 n\). Entscheidung: die binäre Suche. Beide liegen in \(O(\log n)\) — die Konstante entscheidet.

A10
Ist in-place immer besser?
AFB III

Nehmen Sie Stellung zur Aussage: „Eine Kopie kostet \(O(n)\) Speicher, deshalb sind In-place-Verfahren immer vorzuziehen.“

Wie viele Byte belegt eine sortierte Kopie einer int-Reihung mit \(10^6\) Elementen?

Strategie: Den Speicher konkret ausrechnen und mit dem Nutzen vergleichen.Warum so? Stellung nehmen heißt: abwägen und ein begründetes Fazit mit Bedingung formulieren.
Lösungsskizze: \(10^6 \cdot 4 = 4 \cdot 10^6\) Byte = 4 MB.
Musterlösung anzeigen

Musterlösung: Die Kopie belegt 4 MB — auf einem heutigen Rechner wenig. Dafür bleibt die ursprüngliche Reihenfolge erhalten (etwa die zeitliche Reihenfolge von Messwerten), und andere Programmteile, die dieselbe Reihung nutzen, werden nicht gestört. In-place ist vorzuziehen, wenn Speicher knapp ist (sehr große Daten, kleine Geräte) oder das Original nicht mehr gebraucht wird. Die Aussage ist deshalb zu pauschal: \(O(n)\) Zusatzspeicher ist oft vertretbar.