Wiki: Mathe und Info

Unterrichtsmaterialien für Mathematik und Informatik

Benutzer-Werkzeuge

Webseiten-Werkzeuge


info:sek-ii:q1:algorithmen-rekursion:l2-suchalg

Suchalgorithmen

Suchalgorithmen

Ein häufiges Problem in der Informatik ist es, bestimmte Datensätze in einer Datenbank zu suchen. Dies hört sich erst mal sehr einfach an. "Einfach alle Datensätze anschauen und zack, fertig". Bei Datensätzen mit weniger als 20 Daten mag das noch einfach sein. Aber stellt euch vor, Google will seine Website-Datenbank mit ein paar Quadtrillionen Einträgen nach dem Begriff "Bester Suchalgorithmus ever" durchsuchen. Schon nicht mehr so ganz einfach, oder?

Um das grundlegende Problem besser zu verstehen, beschränken wir uns zunächst mal auf einfachere Suchprobleme. Statt einer gesamten Datenbank betrachten wir "nur" einen Array, und anstatt von Websites, die wir auf ein bestimmtes Stichwort durchsuchen wollen, beschränken wir uns zunächst mal auf Zahlen.

Aufgabe 1

Lest den Artikel Suchproblem auf inf-schule.de. Notiert eure Antworten zu den Fragen im Artikel im Gruppendokument.

  • Bearbeitet auch Aufgabe 1 aus dem Artikel (Antworten → Gruppendokument!).
Aufgabe 2

Lest den Artikel Entwicklung von Suchalgorithmen auf inf-schule.de. Notiert eure Antworten zu den Fragen im Artikel im Gruppendokument.

  • Bearbeitet auch Aufgabe 1 aus dem Artikel (Antworten → Gruppendokument!).
Aufgabe 3

Lest den Artikel Lineare Suche auf inf-schule.de. Notiert eure Antworten zu den Fragen im Artikel im Gruppendokument.

  • Bearbeitet nur die Aufgaben 1+2 (Antworten → Gruppendokument!).
  • Statt Aufgabe 3:
    • Lest die beiden Info-Texte vom Fachkonzept: Brute-Force- und Lineare Suche.
    • Versucht, beide Algorithmen eigenständig zu implementieren. Nutzt dazu die Vorlagen unten. Bei Problemen schaut euch die Implementierungen im Fachkonzept an.
    • Probiert die beiden Algorithmen in Processing aus. Sucht nach unterschiedlichen Zahlen (sowohl welche, die im Array vorkommen und solche, die nicht vorkommen).
Aufgabe 4

Lest den Artikel Binäre Suche auf inf-schule.de. Notiert eure Antworten zu den Fragen im Artikel im Gruppendokument.

  • Bearbeitet nur Aufgabe 1.
  • Statt Aufgabe 2:
    • Lest den Info-Text vom Fachkonzept: Binäre Suche.
    • Versucht, den Algorithmus eigenständig zu implementieren. Nutzt auch dazu die Vorlage für sortierte Listen von Aufgabe 3. Bei Problemen schaut euch die Implementierungen im Fachkonzept an.
  • Probiert den neuen Algorithmus in Processing aus. Sucht nach unterschiedlichen Zahlen (sowohl welche, die im Array vorkommen und solche, die nicht vorkommen).
Aufgabe 5

Lest den Artikel Aufwandsanalyse auf inf-schule.de. Notiert eure Antworten zu den Fragen im Artikel im Gruppendokument.

Aufgabe 2

Sucht euch einen der drei Algorithmen von vorhin aus und implementiert diesen für das Adressbuch!

  • Achtung: Den Inhalt der void setup()-Methode und die Klasse class Adresse müsst ihr nicht verstehen, es geht hier nur um die Methode Adresse suche(String vorname, String nachname)!
  • Verwendet eine der beiden Adress-Datenbanken, je nach dem, welchen Algorithmus ihr gewählt habt!
  • Tipps:
    • mit if (adressen[position].getNachname().equals(nachname)) { … } kann man den Nachnamen der i-ten Adresse auf Gleichheit zu nachname überprüfen
    • mit if (adressen[position].getNachname().compareTo(nachname) > 0) { … } kann man überprüfen, ob der Nachname der i-ten Adresse größer als der gesuchte nachname ist
    • Statt der Position der gefundenen Adresse soll die Adresse selbst zurückgegeben werden. Das funktioniert z.B. mit return adresse[position];.
info/sek-ii/q1/algorithmen-rekursion/l2-suchalg.txt · Zuletzt geändert: 2023-09-25 15:32 von christian.weber