Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
| gf_informatik:suchen_und_sortieren:binaersuche [2024-02-13 07:21] – hof | gf_informatik:suchen_und_sortieren:binaersuche [2025-11-04 20:49] (aktuell) – gra | ||
|---|---|---|---|
| Zeile 34: | Zeile 34: | ||
| 1. Stelle dir vor, es gäbe ein Telefonbuch für alle 8 Milliarden Menschen, wobei jede Person eine einzelne Seite hätte. Wie viele Seiten musst du maximal aufschlagen, | 1. Stelle dir vor, es gäbe ein Telefonbuch für alle 8 Milliarden Menschen, wobei jede Person eine einzelne Seite hätte. Wie viele Seiten musst du maximal aufschlagen, | ||
| - | < | + | < |
| ++++Lösung| | ++++Lösung| | ||
| Zeile 69: | Zeile 69: | ||
| ++++ | ++++ | ||
| - | < | + | < |
| [[gf_informatik: | [[gf_informatik: | ||
| </ | </ | ||
| Zeile 97: | Zeile 97: | ||
| </ | </ | ||
| - | < | + | < |
| ++++Lösung| | ++++Lösung| | ||
| <code python binaere_suche_loesung.py> | <code python binaere_suche_loesung.py> | ||
| Zeile 117: | Zeile 117: | ||
| ++++ | ++++ | ||
| </ | </ | ||
| - | |||
| #### Aufgabe B4: Binäre Suche für 079 | #### Aufgabe B4: Binäre Suche für 079 | ||
| Kannst du nun die Funktion für die binäre Suche selbständig, | Kannst du nun die Funktion für die binäre Suche selbständig, | ||
| - | - Erstelle eine neue, leere Python-Datei und speichere sie (Name z.B.: `aufgabe_b4.py`) im gleichen Ordner wie die Datei `null79.py`. | + | - Öffne [[https:// |
| - | - Importiere | + | - Alternative: |
| - Schreibe selbständig deine Funktion `binary_search(l, | - Schreibe selbständig deine Funktion `binary_search(l, | ||
| - Definiere unter einer Variable namens `name` den gesuchten Namen, also `Lyanna`. | - Definiere unter einer Variable namens `name` den gesuchten Namen, also `Lyanna`. | ||
| Zeile 130: | Zeile 129: | ||
| - Dein Code sollte so aufgebaut sein, dass du nur die Variable `name` ändern musst, damit ein neuer, korrekter Satz ausgegeben wird. | - Dein Code sollte so aufgebaut sein, dass du nur die Variable `name` ändern musst, damit ein neuer, korrekter Satz ausgegeben wird. | ||
| - | < | + | < |
| ++++Lösung| | ++++Lösung| | ||
| <code python> | <code python> | ||
| Zeile 175: | Zeile 174: | ||
| - Rufe nun die Funktion vier mal auf: Für `Annina` und `Lyanna` – jeweils mit der linearen und mit der binären Suche. | - Rufe nun die Funktion vier mal auf: Für `Annina` und `Lyanna` – jeweils mit der linearen und mit der binären Suche. | ||
| - | < | + | < |
| ++++Lösung| | ++++Lösung| | ||
| <code python> | <code python> | ||
| Zeile 224: | Zeile 223: | ||
| Was passiert, wenn du statt nach Telefonnummern statt nach Namen suchst? Funktioniert die Binärsuche? | Was passiert, wenn du statt nach Telefonnummern statt nach Namen suchst? Funktioniert die Binärsuche? | ||
| - | < | + | < |
| ++++Lösung: | ++++Lösung: | ||
| Die Liste muss **sortiert** sein, damit wir Binärsuche verwenden können. Das Telefonbuch ist aber nach Namen sortiert, nicht nach Telefonnummern. Wir müssten ein Kopie anfertigen und beide Listen nach Telefonnummer sortieren. | Die Liste muss **sortiert** sein, damit wir Binärsuche verwenden können. Das Telefonbuch ist aber nach Namen sortiert, nicht nach Telefonnummern. Wir müssten ein Kopie anfertigen und beide Listen nach Telefonnummer sortieren. | ||
| Zeile 247: | Zeile 246: | ||
| </ | </ | ||
| - | < | + | < |
| ++++Lösung| | ++++Lösung| | ||
| <code python> | <code python> | ||
| Zeile 287: | Zeile 286: | ||
| Rekursion eignet sich für viele Probleme, die sich mit _Divide & Conquer_ (_Teile & Herrsche_) lösen lassen: Probleme, die wir für den trivialen Fall mit einem Element lösen können, und die wir effizient von einem grösseren in ein kleineres Problem überführen können. | Rekursion eignet sich für viele Probleme, die sich mit _Divide & Conquer_ (_Teile & Herrsche_) lösen lassen: Probleme, die wir für den trivialen Fall mit einem Element lösen können, und die wir effizient von einem grösseren in ein kleineres Problem überführen können. | ||
| - | < | + | < |
| ++++Lösung| | ++++Lösung| | ||
| <code python binaere_suche_rekursiv.py> | <code python binaere_suche_rekursiv.py> | ||