Die Tickets nach Dringlichkeit
Im Support kommen jeden Morgen 300 Tickets an. Das Team will zuerst die dringendsten sehen.
Das geht nur, wenn die Liste sortiert ist. Sortieren ist eine der häufigsten Aufgaben in Programmen. Es macht auch die binäre Suche aus der letzten Lektion möglich.
Am Ende dieser Lektion
Notiz
Ich kann Daten sortieren und sagen, warum das wichtig ist.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Sortieren | Einträge in eine feste Reihenfolge bringen | |
| Aufsteigend | vom Kleinsten zum Größten | [8, 10, 14] |
| Vergleich | die Frage, welcher von zwei Werten kleiner ist | |
| Tauschen | zwei Einträge ihre Plätze wechseln lassen | |
| Runde | ein Durchgang durch die Liste |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Sortierte Daten sind leichter zu nutzen
Sortierte Daten bringen drei Vorteile. Die binäre Suche wird möglich. Menschen lesen eine Rangliste schneller. Und Doppelte stehen direkt nebeneinander, also fallen sie auf.
Dafür kostet das Sortieren selbst Zeit. Es lohnt sich, wenn Sie danach oft suchen.
Sortieren durch Auswahl holt das Kleinste nach vorn
Ein einfaches Verfahren geht so. Suchen Sie das kleinste Element der Liste und tauschen Sie es an Stelle 0. Suchen Sie dann das kleinste im Rest und tauschen Sie es an Stelle 1. Das wiederholen Sie bis zum Ende.
Nach jeder Runde ist ein Eintrag mehr am richtigen Platz.
Beispiel: 29, 10, 14, 37, 8 in Runden
| Runde | Kleinstes im Rest | Liste danach |
|---|---|---|
| Start | - | 29, 10, 14, 37, 8 |
| 1 | 8 | 8, 10, 14, 37, 29 |
| 2 | 10 | 8, 10, 14, 37, 29 |
| 3 | 14 | 8, 10, 14, 37, 29 |
| 4 | 29 | 8, 10, 14, 29, 37 |
| 5 | 37 | 8, 10, 14, 29, 37 |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Probieren Sie es: jede Runde ansehen
# Sortieren durch Auswahl: immer das Kleinste nach vorn holen.
zahlen = [29, 10, 14, 37, 8]
for start in range(len(zahlen)):
kleinste = start
for stelle in range(start + 1, len(zahlen)):
if zahlen[stelle] < zahlen[kleinste]:
kleinste = stelle
# Kleinsten Eintrag mit dem an Stelle start tauschen.
merker = zahlen[start]
zahlen[start] = zahlen[kleinste]
zahlen[kleinste] = merker
print("Nach Runde", start + 1, ":", zahlen)
# Ändern Sie die Zahlen oben und sehen Sie zu, wie jede Runde einen Eintrag ordnet.
Ein häufiger Fehler
Warnung
Viele denken, liste.sort() gebe die sortierte Liste zurück. Es sortiert aber die Liste selbst und gibt nichts zurück. Schreiben Sie x = liste.sort(), hat x den Wert None, also nichts. Wollen Sie eine neue Liste, nehmen Sie sorted(liste).
Probieren Sie es: das eingebaute Sortieren
# Python kann es auch eingebaut.
preise = [1999, 450, 8900, 120]
preise.sort()
print(preise)
namen = ["Mira", "Anna", "Lukas", "Jonas"]
namen.sort()
print(namen)
# Sortieren Sie die Zahlen mit sorted(preise) in eine neue Liste und geben Sie sie aus.
Im Beruf nutzen Sie das eingebaute Sortieren
Python, Java und die Datenbank bringen eigene Sortierverfahren mit. Sie sind sorgfältig getestet und schnell. Im Alltag nutzen Sie sie und schreiben selten ein eigenes.
Trotzdem lohnt sich das Verständnis: Sie sehen, warum Sortieren bei großen Daten Zeit kostet.