Sortieren und Suchen mit Mathe?

Werbung
Mathematik AG
Geschickt gesucht ist halb gefunden:
Suchen und Sortieren mit Mathe
Habe ich die 7?
4
5
1
3
8
6
1
9
2
7
JA!
Habe ich die 7?
4
5
1
3
8
6
1
9
2
NEIN!
3
Unser Problem
JA
4
5
1
3
8
6
1
9
2
7
NEIN
4
5
1
3
8
6
1
9
2
3
Wir müssen im schlechtesten Fall alle
Karten anschauen!
Geht das besser?
4
5
1
3
8
6
Hilft das, wenn wir
wissen, dass die Zahlen
nach Größe angeordnet
sind?
1
9
2
3
Geht das besser?
1
1
2
3
3
4
Hilft das, wenn wir
wissen, dass die Zahlen
nach Größe angeordnet
sind?
5
6
8
9
Such-Wettrennen!
Wer sucht am schnellsten?
Die binäre Suche
4 Zahlen
1
Gesucht: 7
1
2
5 Zahlen
3
3
4
5
6
8
Hier ist so etwa die
Mitte
9
Die binäre Suche
4 Zahlen
1
1
2
5 Zahlen
3
3
4
5
6
Gesucht: 7
Wir haben die 7 noch
nicht gefunden,
aber…
8
9
Die binäre Suche
4 Zahlen
1
Gesucht: 7
1
2
5 Zahlen
3
Alle Zahlen hier
sind kleiner
oder gleich der
3
3
4
5
6
8
9
Alle Zahlen hier
größer oder gleich
der 3
Wir haben die 7 noch
nicht gefunden,
aber…
Die binäre Suche
4 Zahlen
1
Gesucht: 7
1
2
5 Zahlen
3
Alle Zahlen hier
sind kleiner
oder gleich der
3
3
4
5
6
8
9
Alle Zahlen hier
größer oder gleich
der 3
Wo kann die 7 nur
sein?
3 < 7: also ist die 7 höchstens hier
Die binäre Suche
4 Zahlen
1
Gesucht: 7
1
2
5 Zahlen
3
Alle Zahlen hier
sind kleiner
oder gleich der
3
3
4
5
6
8
9
Alle Zahlen hier
größer oder gleich
der 3
Wo kann die 7 nur
sein?
3 < 7: also ist die 7 höchstens hier
Die binäre Suche
5 Zahlen
4
Gesucht: 7
5
6
8
9
Alle Zahlen hier
größer oder gleich
der 3
Von
10 Zahlen
haben wir unseren „Suchraum“ auf
5 Zahlen
verkleinert (halbiert!)
Wie geht es jetzt weiter?
Die binäre Suche
5 Zahlen
4
Gesucht: 7
5
6
Hier ist sogar
genau die Mitte
8
9
Die binäre Suche
4
Gesucht: 7
Alle Zahlen hier
sind kleiner
oder gleich der
6
5
6
8
9
Alle Zahlen hier
größer oder gleich
der 6
Die binäre Suche
8
Gesucht: 7
Hier ist etwa die
Mitte
9
Die binäre Suche
8
Gesucht: 7
9
Die binäre Suche
8
Gesucht: 7
Konstatiere: Die 7 ist nicht dabei!
Unser Suchaufwand
10 Zahlen
5 Zahlen
2 Zahlen
1 Zahl
1
1
2
3
3
4
4
Mit jedem „Test“
halbiert sich unsere
Zahlenmenge
mindestens.
5
5
6
6
8
9
8
9
8
9
8
Vergleich der beiden Suchmethoden
Zahlen
Sequentielle Suche
Binäre Suche
1
2
4
8
16
32
64
Anzahl Testschritte für die beiden
Methoden (im schlechtesten Fall)
Vergleich der beiden Suchmethoden
Zahlen
Sequentielle Suche
1
1
2
2
4
4
8
8
16
16
32
32
64
64
Binäre Suche
Anzahl Testschritte für die beiden
Methoden (im schlechtesten Fall)
Vergleich der beiden Suchmethoden
Zahlen
1
2
4
Wenn sich die
Sequentielle
Anzahl der
Zahlen Suche
1 steigt die
verdoppelt,
2 nur um
Testanzahl
eins an! 4
Binäre Suche
1
2
3
8
8
4
16
16
5
32
32
6
64
64
7
Anzahl Testschritte für die beiden
Methoden (im schlechtesten Fall)
Laufzeitvergleich
9000
6750
Sequentiell
Binär
4500
2250
0
1
2
4
8
16
32
64
128 256 512 1024 2048 4096 8192
Sortiert ist gut!
Wenn die Zahlen
sortiert sind, können
wir schnell suchen!
Aber: Wie
sortiere ich die
Zahlen eigentlich
(schnell)?
GUT!
1
1
2
3
3
4
5
6
8
9
1
5
2
4
3
3
1
6
8
9
Nicht so gut!
Sortier-Wettrennen!
Wer sortiert am schnellsten?
8
5
2
4
3
3
1
6
1
9
1
1
2
3
3
4
5
6
8
9
Einfüge-Sortieren
8
5
2
4
3
3
1
6
1
9
Unsortiert
Wir fügen immer die aktuelle
Zahl an die richtige Stelle der
bereits sortierten Zahlen ein.
Einfüge-Sortieren
8
5
2
4
3
3
1
6
1
9
Unsortiert
Wir fügen immer die aktuelle
Zahl an die richtige Stelle der
bereits sortierten Zahlen ein.
Einfüge-Sortieren
5
8
Sortiert
2
4
3
3
1
6
1
9
Unsortiert
Wir fügen immer die aktuelle
Zahl an die richtige Stelle der
bereits sortierten Zahlen ein.
Einfüge-Sortieren
5
8
Sortiert
2
4
3
3
1
6
1
9
Unsortiert
Wir fügen immer die aktuelle
Zahl an die richtige Stelle der
bereits sortierten Zahlen ein.
Einfüge-Sortieren
2
5
Sortiert
8
4
3
3
1
6
1
9
Unsortiert
Wir fügen immer die aktuelle
Zahl an die richtige Stelle der
bereits sortierten Zahlen ein.
Einfüge-Sortieren
2
5
Sortiert
8
4
3
3
1
6
1
9
Unsortiert
Wir fügen immer die aktuelle
Zahl an die richtige Stelle der
bereits sortierten Zahlen ein.
Einfüge-Sortieren
4
2
5
Sortiert
8
3
3
1
6
1
9
Unsortiert
Wir fügen immer die aktuelle
Zahl an die richtige Stelle der
bereits sortierten Zahlen ein.
Einfüge-Sortieren
2
4
Sortiert
5
8
3
3
1
6
1
9
Unsortiert
Und so geht das dann weiter…
Wir fügen immer die aktuelle
Zahl an die richtige Stelle der
bereits sortierten Zahlen ein.
Sortierverfahren
• Einfüge-Sortieren (Insertion-Sort)
• Blubber-Sortieren (Bubble-Sort)
• Misch-Sortieren (Merge-Sort)
• Haufen-Sortieren (Heap-Sort)
• Schnell-Sortieren (Quick-Sort)
Sortieren mit Haufen
Ein Heap (Haufen) hilft beim
Sortieren
Kleinstes
Element
(=Minimum)
„Höhe“ log n
2
5
6
9
10
17
14
18
7
19 14
7
Sortieren mit Haufen
Ein Heap (Haufen) hilft beim
Sortieren
Kleinstes
Element
(=Minimum)
„Höhe“ log n
2
5
6
14
7
9
10
17
????
18
19
14
7
Sortieren mit Haufen
Ein Heap (Haufen) hilft beim
Sortieren
Kleinstes
Element
(=Minimum)
„Höhe“ log n
14
5
6
2
14
7
9
10
17
????
18
19
7
Sortieren mit Haufen
Ein Heap (Haufen) hilft beim
Sortieren
Kleinstes
Element
(=Minimum)
„Höhe“ log n
5
14
6
2
14
7
9
10
17
????
18
19
7
Sortieren mit Haufen
Ein Heap (Haufen) hilft beim
Sortieren
Kleinstes
Element
(=Minimum)
„Höhe“ log n
5
9
10
17
2
14
????
Alles wieder OK!
6
7
14
18
19
7
Fazit
• Suchen geht mit binärer Suche in
„logarithmischer Zeit“
• Einfüge-Sortieren benötigt Zeit
• Haufen-Sortieren benötigt Zeit
Herunterladen