Quick Sort - PowerPoint PPT Presentation

1 / 51
About This Presentation
Title:

Quick Sort

Description:

Da die roten Farben die rechte Seite von unserer Farbenfolge waren, haben wir also tats chlich die ganze Folge sortiert. JUHUI! Wir sind fertig! * Da ist unser Pivot! – PowerPoint PPT presentation

Number of Views:107
Avg rating:3.0/5.0
Slides: 52
Provided by: bark159
Category:
Tags: farben | quick | sort

less

Transcript and Presenter's Notes

Title: Quick Sort


1
Quick Sort
  • Mit vielen bunten Farben

2
Fröhliches Farbensortieren
  • Wir möchten diese Farbenreihe sortieren.
  • Wir beginnen folgendermassen Alle hellen Farben
    bringen wir auf die linke, alle dunklen Farben
    auf die rechte Seite.
  • Sobald das erledigt ist, sortieren wir die hellen
    Farben.
  • Dann sortieren wir die dunklen Farben.
  • Fertig.

3
Aller Anfang ist schwer
  • Zuerst müssen wir aber herausfinden, welche
    Farben hell, und welche Farben dunkel sind.
  • Dieses Problem lösen wir so Wir bestimmen ein
    Element und nennen es Pivot-Element.
  • Alle Farben, die heller sind als unser
    Pivot-Element, gehören zu den hellen Farben.
  • Alle Elemente, die dunkler sind als unser Pivot,
    ordnen wir den dunklen Farben zu.

4
Wo ist unser Pivot?
  • Am liebsten hätten wir ein Element, welches
    unsere Farbenreihe in zwei gleichgrosse Teile
    teilt.
  • Da wir aber nicht wissen, wo sich dieses Element
    befindet, und uns nichts besseres einfällt,
    wählen wir einfach das erste Element als unser
    Pivot.

Da ist unser Pivot!
5
Wie bringen wir die hellen Farben auf die linke
Seite?
  • Wir wandern von links nach rechts und vergleichen
    jedes Element mit unserem Pivot-Element.
  • Ist es heller als unser Pivot, ist es bereits
    auf der richtigen Seite und wir sehen uns das
    nächste Element an. Ist es aber dunkler, stoppen
    wir.
  • Sobald wir ein dunkleres Element gefunden haben,
    beginnen wir dasselbe Spiel von rechts.
  • Wir wandern von rechts nach links, bis wir ein
    Element finden, das heller ist als unser Pivot.

6
1.
Hier oben findest du eine Übersicht, auf welcher
Rekursionsstufe wir uns befinden.
Unser Pivot-Element
  • Wenn wir das so anstellen, sind alle Elemente bis
    zum grünen Pfeil heller als das Pivot-Element und
    alle Elemente vom rechten Rand bis zum blauen
    Pfeil dunkler.

7
1.
Links haben wir nun ein Element, welches auf die
rechte Seite gehört, rechts haben wir ein
Element, welches auf die linke Seite gehört gt
Wieso tauschen wir nicht einfach?
Unser Pivot-Element
HALT, dieses Element ist dunkler als unser Pivot,
sowas gehört auf die andere Seite
Dieses Element ist heller als unser
Pivot-Element, wir können also nach rechts
rutschen
Auch dieses Element ist heller, wir gehen einen
Schritt weiter
Ups, dieses Element ist heller als unser Pivot,
halten wir also an!
Dieses Element ist sowieso heller, gehen wir eins
weiter
8
1.
Wieder haben wir zwei Elemente, die getauscht
werden müssen
Unser Pivot-Element
Stopp, da ist ja bereits ein helleres Element
Gesagt, getan, wir haben nun die beiden Elemente
vertauscht und somit ist wieder alles in bester
Ordnung! Alle Elemente links vom grünen Pfeil
(ausser das Pivot) sind heller, alle Elemente
rechts vom blauen Pfeil sind dunkler als das
Pivot.
Nun wandert der blaue Pfeil wieder nach links,
bis er ein Element findet, das heller ist als
unser Pivot.
Schon wieder dunkler, warten wir also wieder.
9
1.
Die Pfeile haben ihre Wege gekreuzt. Links vom
grünen Pfeil sind alle helleren Elemente, rechts
vom blauen Pfeil sind alle Elemente, die dunkler
sind als unser Pivot. Das heisst nichts anderes,
als das wir den Platz von unserem Pivot-Element
gefunden haben Es kommt genau zwischen diese
zwei Elemente, auf welche die zwei Pfeile zeigen!
Wenn wir also das hellere Element mit unserem
Pivot-Element vertauschen, liegt unser
Pivot-Element am richtigen Platz Alle Elemente
links von unserem Pivot sind dann heller und alle
Elemente rechts von unserem Pivot sind dunkler.
Durch den Tausch stimmts wieder Links befinden
sich die helleren Farben, rechts die dunkleren.
Wir können also mit unseren Pfeilen weiter fahren.
Unser Pivot-Element
Stopp, der grüne Pfeil zeigt auf ein dunkleres
Element
Nochmals Stopp, der blaue Pfeil zeigt auf ein
Element, welches heller ist als unser Pivot
10
1.
Unser Pivot-Element hat nun seinen Platz
gefunden, deshalb markieren wir es mit einem
Smiley.
Unsere Aufgabe war es, diese Farbenfolge zu
sortieren. Wir haben diese Aufgabe in 2 neue
Aufgaben unterteilt
Wir sortieren zuerst die gelben Farben
und dann noch die roten Farben
11
1.
2.
Um nun die Reihenfolge wieder in die richtige
Ordnung zu bringen, vertauschen wir diese zwei
Elemente einfach miteinander.
Unser Pivot der gelben Farben
Um die hellen Farben zu sortieren, wählen wir das
vorderste Element der hellen Farben als neues
Pivot-Element.
Zuerst beginnt der grüne Pfeil. Da er bereits auf
ein dunkleres Element zeigt, muss er warten
Auch der blaue Pfeil muss warten, da er auf ein
helleres Element zeigt
12
1.
2.
Unsere Pfeile haben sich wieder gekreuzt, wir
haben also auch den Platz für unser Pivot der
gelben Farben gefunden. Wenn wir unser Pivot nun
mit dem Element tauschen, auf das der blaue Pfeil
zeigt, haben wir das Pivot richtig platziert.
Unser Pivot der gelben Farben
Dieses Element ist sowieso dunkler, machen wir
weiter.
Stopp, jetzt haben wir doch noch ein Element
gefunden, das heller ist warten wir also
Nun ist dieses Element heller als unser
Pivot-Element, wir können also einen Schritt
weiter
Dieses Element ist dunkler als das Pivot, wir
können getrost einen Schritt weiter gehen
Auch dieses Element ist dunkler, gehen wir eins
weiter
Da dieses Element dunkler ist, muss der grüne
Pfeil eine kurze Pause einlegen
13
1.
2.
Dieses Element ist also auch bereits am richtigen
Platz. Denn links von ihm stehen nur hellere,
rechts von ihm nur dunklere Elemente. Deshalb
bekommt es auch einen Smiley von uns.
Unsere Teilaufgabe war es, diese Farbenfolge zu
sortieren. Wir teilen diese Aufgabe wiederum in
zwei neue Aufgaben auf
Wir sortieren zuerst die linke Seite.
Dann sortieren wir die rechte Seite
Die linke Seite sortieren? Ist sie das nicht
schon? Ja, aber das weiss der Computer ja noch
nicht.
14
1.
2.
3.
Der Computer sieht sich den linken Teil an und
stellt fest, dass es sich nur um ein einzelnes
Element handelt. Dieses ist selbstverständlich am
richtigen Platz, da es ja gar keinen anderen
Platz gibt. Deshalb wird dieses Element auch mit
dem Smiley ausgezeichnet.
15
1.
Da sich die Pfeile kreuzten, haben wir wiederum
den endgültigen Platz für unser Pivot- Element
gefunden. Wir müssen es also nur noch an den
richtigen Platz bringen. Wenn wir es mit dem
helleren Element tauschen, sind alle Elemente
links von unserem Pivot heller, alle anderen
Elemente dunkler, genau so, wie wir es uns
wünschen.
2.
3.
Nun kümmert sich der Computer um die dunkleren
der gelben Farben Das Vorderste wird wieder zum
Pivot.
Ich bin auch ein Pivot-Element
Der grüne Pfeil zeigt auf ein Element, welches
heller ist als unser Pivot, daher gehen wir eins
weiter
Da auch dieses Element heller ist, rutschen wir
nochmals nach rechts
Nun müssen wir stoppen, da der grüne Pfeil auf
ein dunkleres Element zeigt
Der blaue Pfeil steht bereits auf einem helleren
Feld, warten wir mal ab
16
1.
2.
Wir haben ein Element mehr glücklich gemacht Es
hat seinen Platz gefunden, daher kriegt es auch
einen Smiley.
3.
Wir sind aber noch nicht fertig, schliesslich
müssen wir nun wieder die neu entstandenen Teile
sortieren.
und in eine rechte Folge mit dunkleren
Farben. Diese Farbenfolge ist etwas spezieller.
Unser letztes Pivot war das Dunkelste in seiner
Farbenfolge. Deswegen wurde es zuhinterst
eingeordnet. Es gibt also keine dunkleren Farben.
Daher ist die rechte Farbenfolge diesmal
leer. Das soll uns nicht weiter stören. Wir
werden das etwas später genauer betrachten.
Wir haben diese Farbenfolge in zwei kleinere
Farbenfolgen aufgeteilt
Und zwar in eine linke Folge mit helleren Farben
17
1.
2.
3.
4.
Sortieren wir also zunächst die linke
Teilfolge Das vorderste Element wird unser
nächstes Pivot.
nächstes Pivot-Element
Der grüne Pfeil steht auf einem helleren Element,
kann also einen Schritt weiterfahren
Nun steht er auf einem dunkleren Element, muss
also kurz innehalten
Der blaue Pfeil zeigt bereits auf ein helleres
Element, muss also auch warten
18
1.
2.
Die Pfeile haben sich gekreuzt, also haben wir
den richtigen Platz gefunden. Wenn wir unser
jetziges Pivot-Element mit dem Element tauschen,
auf das der blaue Pfeil zeigt, sind wir der
sortierten Farbenfolge etwas näher.
3.
4.
nächstes Pivot-Element
19
Da auch dieses Element nun am richtigen Platz
steht, wird es auch mit einem Smiley
markiert. Leider sind wir immer noch nicht
fertig. Wir müssen nun die linke Seite, und
dann die rechte Seite von unserem letzten Pivot
sortieren.
1.
2.
3.
4.
5.
Bei der linken Seite haben wir Glück Der
Computer erkennt schnell, dass es sich um ein
einzelnes Element handelt. Es ist also schon
sortiert und bekommt auch einen Smiley. Wo bitte
schön ist unsere unsortierte rechte Seite?
Sie befindet sich hier, es handelt sich wieder um
die leere Farbenfolge. Der Computer ist somit
fertig, bevor er angefangen hat.
20
1.
2.
3.
4.
Diese Teilfolge haben wir jetzt bereits
sortiert. Als nächstes käme jetzt noch dieser
Teil.
Aber wie bei der letzten leeren Folge merkt der
Computer, dass er gar nichts zu tun hat.
Wir haben also diese Teilfolge sortiert. Und das
war nichts anderes, als die rechte Seite von
dieser Teilfolge
21
1.
2.
Das bedeutet Wir haben die gelben Farben
erfolgreich sortiert. Kannst du dich noch an
unsere Aufgabe und den dazugehörenden Plan
erinnern?
Wir wollten diese Farbenreihe sortieren
Zuerst die Gelben
dann die Roten
Also machen wir uns jetzt daran, die roten Farben
zu sortieren. Drei Mal darfst du raten, wie wir
das anstellen werden Genau! Wieder mit dem
gleichen Verfahren wie bisher.
22
1.
Damit dir nicht langweilig wird, bist nun du
dran Welches Element wählen wir als
Pivot-Element? Bitte Klicke auf dieses Element.
2.
Nein, dieses Element ist bereits sotiert.
Nein, dieses Element ist bereits sotiert.
Nein, dieses Element ist bereits sotiert.
Nein, dieses Element ist bereits sotiert.
Nein, dieses Element ist bereits sotiert.
Nein, dieses Element ist bereits sotiert.
Nö, wir wählen ein anderes
23
1.
2.
Richtig, das ist unser nächstes Pivot-Element
24
1.
Platziere nun den grünen Pfeil, indem du an den
passenden Ort klickst
2.
Richtig, das ist unser nächstes Pivot-Element
25
1.
2.
Genau, nun platziere den blauen Pfeil, indem du
an den passenden Ort klickst.
Richtig, das ist unser nächstes Pivot-Element
26
1.
Nein, das Pivot darf heute ausschlafen
2.
Nein, dieses Feld macht gerade Pause
Yepp, und nun? Klick auf das Objekt, welches als
nächstes zu arbeiten hat Wenn du einen Pfeil
anklicken willst, musst du sehr genau auf seine
Spitze klicken
Richtig, das ist unser nächstes Pivot-Element
Klicke nun auf dieses Symbol
Genau, der blaue Pfeil zeigt auf ein dunkleres
Element, er muss also noch weiter gehen.
Nein, der grüne Pfeil zeigt bereits auf ein
dunkleres Element, er muss warten
27
Jetzt kannst du wieder auf weiter klicken
1.
Nein, dieses Feld macht gerade Pause
2.
Wer ist jetzt an der Reihe?
Nein, das Pivot darf auch heute ausschlafen
Richtig, das ist unser nächstes Pivot-Element
Genau, der blaue Pfeil ist immer noch an der Reihe
Nein, der grüne Pfeil zeigt bereits auf ein
dunkleres Element, er muss warten
28
1.
2.
Nee, dieses Element wird zur Zeit nicht betrachtet
Wer ist den nun dran?
Richtig, das ist unser nächstes Pivot-Element
Nein, das Pivot ist noch nicht an der Reihe
Nein, dieses Element ist heller als unser Pivot,
der blaue Pfeil muss sich etwas gedulden
Nein, der grüne Pfeil zeigt bereits auf ein
dunkleres Element, er muss warten
29
Genau. Wir müssen die zwei Elemente, die von den
Pfeilen markiert sind, vertauschen.
1.
2.
30
1.
So gefällts uns doch gleich besser. Aber wer ist
jetzt dran?
2.
Nein, dieses Element ist schon in der richtigen
Reihenfolge
Nein, nein, das Pivot-Element darf sich noch
etwas ausruhen
Richtig Der grüne Pfeil zeigt jetzt auf ein
helleres Element, er darf also eins nach rechts
rutschen.
Nein, der blaue Pfeil ist noch nicht an der Reihe
Um weiter zu kommen, kannst du auf dieses Symbol
klicken
31
An wem bleibt denn nun die Arbeit hängen?
1.
2.
Nein, nein, das Pivot-Element darf sich noch
etwas ausruhen
Nein, dieses Element hat gerade Ferien
Nein, der grüne Pfeil zeigt auf ein dunkleres
Element, muss also warten
Um weiter zu kommen kannst du auf das Symbol
klicken
Richtig, der blaue Pfeil zeigt auf ein dunkleres
Feld, er darf sich also auf Wanderung begeben
32
Und nun? Klicke auf denjenigen, der zu arbeiten
hat
1.
2.
Nein, dieses Element ist schon in der richtigen
Reihenfolge
Jawoll! Die Pfeile haben sich gekreuzt Nun ist
unser Pivot-Element dran
Damits weiter geht, klicke hier
Nein, der grüne Pfeil zeigt auf ein dunkleres
Element, muss also warten
Nein, der blaue Pfeil zeigt auf ein helleres
Objekt, er muss warten
33
1.
2.
Genau, wenn es mit diesem Element vertauscht
wird, kriegen wir die gewünschte Reihenfolge
Mit wem wird denn unser Pivot vertauscht?
Nein, es wird nicht mit sich selber vertauscht
Damits weiter geht, klicke hier
Nö, wenn wir es mit diesem Element vertauschen,
haben wir links von unserem Pivot-Element ein
dunkleres Element, das gefällt uns nicht!
Nein, dieses Element wird zur Zeit gar nicht
betrachtet
Du kannst unser Pivot-Element nicht mit einem
Pfeil tauschen!
34
1.
2.
Gratuliere! Du hast soeben einen Teilschritt von
Quicksort selbständig ausgeführt.
35
1.
Da unser Pivot nun am richtigen Platzt steht,
kriegt es einen Smiley
2.
3.
So ist es. Und da es sich um ein einzelnes
Element handelt, ist es schon sortiert und
bekommt einen Smiley.
Weiter
Was passiert jetzt? Klicke auf den
entsprechenden Text
b) Wir sortieren diesen Teil zuerst
a) Wir sortieren diesen Teil zuerst
Leider nein. Wir sortieren immer zuerst den
linken und dann den rechten Teil
36
Nun sind wir schon bald fertig Wir müssen nur
noch diesen kleinen Teil sortieren Nur wie? Wie
könnten wir es vergessen The same procedure as
last time!
1.
2.
3.
Ja, du hast unser Pivot gefunden
Wähle das Pivot-Element aus, indem du drauf
klickst
Nein, dieses Element ist bereits sortiert,
deswegen trägt es ja so stolz einen Smiley mit
sich rum.
Nee, so sieht unser Pivot-Element aber nicht aus
37
1.
2.
3.
Platziere den grünen Pfeil am richtigen Platz
Ja, du hast unser Pivot gefunden
38
1.
2.
3.
Richtig, und nun den blauen
Ja, du hast unser Pivot gefunden
39
1.
Richtig. Wer muss sich nun bewegen?
2.
3.
Nee, das Pivot darf noch etwas liegen bleiben.
Ja, du hast unser Pivot gefunden
Nein, der grüne Pfeil zeigt bereits auf ein
dunkleres Element, er muss warten
Nein, der blaue Pfeil zeigt schon auf ein
helleres Element. Geduldig wartet er.
40
1.
Gut! Die zwei Elemente, die von den Pfeilen
markiert werden, müssen die Plätze tauschen.
2.
3.
Ja, du hast unser Pivot gefunden
41
1.
2.
3.
Nein, dieses Element ist in der richtigen
Reihenfolge
Nein, das Pivot-Element darf sich erst bewegen,
wenn sich die zwei Pfeile überkreuzt haben
Ja, du hast unser Pivot gefunden
Und nun? Wer darf sich als nächstes bewegen?
Nein, der blaue Pfeil ist noch nicht an der Reihe
Damit gehts weiter
Richtig, da der grüne Pfeil nun auf ein helleres
Element zeigt, geht er einen Schritt nach rechts.
42
1.
Nein, dieses Element ist in der richtigen
Reihenfolge
2.
3.
Und nun? Wer ist an der Reihe?
Nein, das Pivot-Element darf sich erst bewegen,
wenn sich die zwei Pfeile überkreuzt haben
Ja, du hast unser Pivot gefunden
Nein, der grüne Pfeil zeigt auf ein dunkleres
Element und muss warten
Genau, der grüne Pfeil wartet schon und der blaue
zeigt auf ein dunkleres Element. Er rutscht also
einen Platz nach links
Mit dem gehts weiter
43
1.
2.
3.
Nein, dieses Element kann sich ausruhen
Wen triffts in dieser Runde? Klicke den
Auserwählten an.
So ists Die Pfeile haben sich überkreuzt, also
muss nun unser Pivot aktiv werden
Jein, eigentlich ist das die Antwort auf die
nächste Frage
Nein, der blaue Pfeil hat seine Arbeit bereits
getan, er kann sich etwas ausruhen
Nein, der grüne Pfeil hat bereits geschuftet. Er
macht gerade Pause
Mit dem gehts weiter
44
1.
2.
Nein, dieser Platz gefällt unserem Pivot gar nicht
3.
Mit welchem Element tauscht unser Pivot seinen
Platz?
Unser Pivot will nicht am eigenen Platz bleiben
Unser Pivot hat keine Lust auf den Platz vom
blauen Pfeil
Unser Pivot tauscht seinen Platz sicher nicht mit
einem grünen Pfeil
45
1.
2.
3.
Ja genau! Mit diesem tauscht es den Platz.
46
1.
2.
3.
4.
Am neuen Platz angekommen fühlt sich unser
Pivot-Element so wohl, dass es sich einen Smiley
kauft.
Hast du eine Vermutung, was jetzt geschehen
wird? Wir haben es ja auch schon einige Male
durchgespielt Zuerst betrachten wir die linke
Seite Da es sich um ein einzelnes Element
handelt, sind wir fertig. Wir verleihen ihm den
Smiley.
47
1.
Jetzt betrachten wir noch die rechte Seite und
stellen fest, dass auch hier nur noch ein Element
übrig geblieben ist. Dieses Element ist also auch
sortiert Überreichen wir ihm auch einen Smiley.
2.
3.
4.
48
1.
2.
3.
4.
Dieses Element war die rechte Seite von dieser
Teilfolge. Diese Teilfolge ist demnach sortiert.
Sie war aber nichts anderes als der rechte Teil
der roten Farben
49
Also sind nun auch die roten Farben sortiert. Und
was bedeutet das?
50
Also sind nun auch die roten Farben sortiert Und
was bedeutet das? Da die roten Farben die rechte
Seite von unserer Farbenfolge waren, haben wir
also tatsächlich die ganze Folge sortiert.
51
JUHUI! Wir sind fertig!
Write a Comment
User Comments (0)
About PowerShow.com