Das Sortieren von Daten nach bestimmten Kriterien gehört zu den wichtigsten
Problemen der Informatik. Bei großen Datenmengen ist es ungemein wichtig,
dass effiziente Algorithmen zur Verfügung stehen.
Die verschiedenen in der Geschichte der Informatik entwickelten Algorithmen
haben alle ihre Vor- und Nachteile, je nach dem, auf welche Daten man sie
loslässt. So kann bei einem bestimmten Datenbestand der "schlechteste"
Algorithmus am schnellsten mit der Arbeit fertig sein.
Zu Beginn werden wir einfachere Algorithmen behandeln und daran
studieren, was "Effizienz eines Sortieralgorithmus" bedeutet.
Aufgabe 1:
Lege so ca. 10 Karten eines Kartenspiels gemischt und verdeckt nebeneinander
auf den Tisch. Du darfst jetzt immer nur gleichzeitig zwei Karten
aufdecken und vergleichen, d.h. nur genau so, wie es ein Computer
machen kann. Es dürfen niemals mehr als zwei Karten gleichzeitig auf dem Tisch sichtbar sein.
Durch eine bestimmte Strategie sollen die Karten in eine aufsteigend
sortierte Reihenfolge gebracht werden.
Schreibe die Idee für Dein Vorgehen zumindest in Stichworten auf, sodass man
es nachvollziehen kann.
Aufgabe 2: Sieh dir das Video an, in dem ein bestimmter Sortier-Algorithmus auf einem Feld getanzt wird. Es gibt auch eine Youtube-Link
Aufgabe 3:
Lade Dir die Datei SortierenBubbleBeispiel.zip herunter,
entpacke sie und starte BlueJ. Es sind dieselben Zahlen wie im Tanz eingegeben.
Teste das Programm. Teste das Programm auch so, dass nach jedem Tauschvorgang das Feld in der
aktuellen Version angezeigt wird (in der Methode vertausche() müssen die Kommentar-Slashes entfernt werden).
Analysiere den Algorithmus und versuche, die Vorgänge nachvollziehen zu können.