• Keine Ergebnisse gefunden

Quick Sort

N/A
N/A
Protected

Academic year: 2021

Aktie "Quick Sort"

Copied!
51
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Quick Sort

Mit vielen bunten Farben

(2)

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)

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)

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)

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)

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.

Unser Pivot-Element

welcher Rekursionsstufe wir uns befinden.

(7)

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

Dieses Element ist sowieso

heller, gehen wir eins weiter

HALT, dieses Element ist

dunkler als unser Pivot, sowas

gehört auf die andere Seite

Ups, dieses

Element ist heller als unser Pivot, halten wir also an!

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 =>

Wieso tauschen wir nicht einfach?

Unser Pivot-Element

(8)

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 Schon wieder

dunkler,

warten wir also wieder.

Nun wandert der blaue Pfeil wieder nach links, bis er ein Element findet, das heller ist als unser Pivot.

Stopp, da ist ja bereits ein helleres Element

Wieder haben wir zwei Elemente, die getauscht werden müssen Unser Pivot-Element

(9)

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.

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

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

(10)

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)

Um die hellen Farben zu sortieren, wählen wir das vorderste Element der hellen Farben als neues Pivot-Element.

Unser Pivot der gelben Farben

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

Um nun die Reihenfolge wieder in die richtige Ordnung zu bringen, vertauschen wir diese zwei Elemente einfach miteinander.

2.

(12)

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

Unser Pivot der gelben Farben

Da dieses Element dunkler ist, muss der grüne Pfeil eine kurze Pause

einlegen

Dieses Element ist dunkler als das Pivot, wir können getrost einen Schritt weiter gehen Auch dieses

Element ist

dunkler, gehen wir eins weiter

Dieses Element ist sowieso

dunkler, machen wir weiter.

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.

2.

(13)

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.

Die linke Seite sortieren? Ist sie das nicht schon?

Ja, aber das weiss der Computer ja noch nicht.

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

2.

(14)

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.

2.

3.

(15)

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

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.

(16)

Wir haben ein Element mehr glücklich gemacht; Es hat seinen Platz gefunden, daher kriegt es auch einen Smiley.

Wir sind aber noch nicht fertig, schliesslich müssen wir nun wieder die neu entstandenen Teile sortieren.

Wir haben diese Farbenfolge in zwei kleinere Farbenfolgen aufgeteilt:Und zwar in eine linke

Folge mit helleren Farben

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.

2.

3.

(17)

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 2.

3.

4.

(18)

nächstes Pivot-Element

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.

2.

3.

4.

(19)

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.

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.

2.

3.

4.

5.

(20)

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 2.

3.

4.

(21)

Wir wollten diese Farbenreihe sortieren

Das bedeutet: Wir haben die gelben Farben erfolgreich sortiert.

Kannst du dich noch an unsere Aufgabe und den dazugehörenden Plan erinnern?

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.

2.

(22)

2.

Welches Element wählen wir als Pivot-Element?

Bitte Klicke auf dieses Element.

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)

Richtig, das ist unser nächstes Pivot-Element 2.

(24)

2.

Richtig, das ist unser nächstes Pivot-Element

Pfeil, indem du an den passenden Ort klickst

(25)

2.

Richtig, das ist unser nächstes Pivot-Element

Genau, nun platziere den blauen Pfeil, indem du an den passenden Ort klickst.

(26)

2.

Richtig, das ist unser nächstes Pivot-Element

Genau, der blaue Pfeil zeigt auf ein dunkleres Element, er muss also noch weiter Nein, der grüne Pfeil zeigt

bereits auf ein dunkleres Element, er muss warten

darf heute

ausschlafen Nein, dieses Feld macht gerade Pause

Klicke nun auf dieses Symbol

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

(27)

2.

Richtig, das ist unser nächstes Pivot-Element

Nein, dieses Feld macht gerade Pause

du wieder auf weiter klicken

Nein, das Pivot darf auch heute ausschlafen

Wer ist jetzt an der Reihe?

Nein, der grüne Pfeil zeigt bereits auf ein dunkleres Element, er muss warten

Genau, der blaue Pfeil ist immer noch an der Reihe

(28)

2.

Nein, das Pivot ist noch nicht an der Reihe

Nee, dieses Element wird zur Zeit nicht betrachtet

Wer ist den nun dran?

Nein, der grüne Pfeil zeigt bereits auf ein dunkleres Element, er muss warten

Nein, dieses

Element ist heller als unser Pivot, der blaue Pfeil muss sich etwas gedulden

Richtig, das ist unser nächstes Pivot-Element

(29)

Elemente, die von den Pfeilen markiert sind, vertauschen.

2.

(30)

2.

Nein, dieses Element ist schon in der richtigen Reihenfolge

Nein, nein, das Pivot-Element darf sich noch etwas ausruhen

Um weiter zu kommen,

kannst du auf dieses Symbol

Aber wer ist jetzt dran?

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

(31)

Barbara Keller, 2005

2.

Um weiter zu kommen kannst du auf das Symbol klicken

Nein, nein, das Pivot-Element darf sich noch etwas ausruhen

Nein, dieses Element hat gerade Ferien

hängen?

Nein, der grüne Pfeil zeigt auf ein dunkleres Element, muss also warten

Richtig, der blaue Pfeil zeigt auf ein dunkleres Feld, er darf sich also auf Wanderung begeben

(32)

2.

Damit’s weiter geht, klicke hier:

Jawoll! Die Pfeile haben sich gekreuzt;

Nun ist unser Pivot-Element dran

Nein, dieses Element ist schon in der richtigen Reihenfolge

Klicke auf denjenigen, der zu arbeiten hat

Nein, der grüne Pfeil zeigt auf ein dunkleres Element, muss also

warten Nein, der blaue Pfeil zeigt

auf ein helleres Objekt, er

(33)

2.

Genau, wenn es mit diesem Element

vertauscht wird, kriegen wir die gewünschte

Reihenfolge

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

Damit’s weiter geht, klicke hier:

Nein, es wird nicht mit sich selber vertauscht

Mit wem wird denn unser Pivot vertauscht?

Du kannst unser Pivot- Element nicht mit einem Pfeil tauschen!

(34)

Gratuliere!

Du hast soeben einen Teilschritt von Quicksort selbständig ausgeführt.

2.

(35)

2.

3. kriegt es einen Smiley

Was passiert jetzt?

Klicke auf den entsprechenden Text

So ist es. Und da es sich um ein einzelnes Element

handelt, ist es schon sortiert und bekommt einen Smiley.

Leider nein. Wir sortieren immer zuerst den linken und dann den rechten Teil

Weiter:

a) Wir sortieren diesen Teil zuerst

b) Wir sortieren diesen Teil zuerst

(36)

2.

3.

nur noch diesen kleinen Teil sortieren Nur wie?

Wie könnten wir es vergessen: The same procedure as last time!

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

Ja, du hast unser Pivot gefunden

(37)

2.

3.

Ja, du hast unser Pivot gefunden

Platziere den grünen Pfeil am richtigen Platz

(38)

2.

3.

Ja, du hast unser Pivot gefunden

Richtig, und nun den blauen

(39)

2.

3.

Ja, du hast unser Pivot gefunden

Wer muss sich nun bewegen?

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.

Nee, das Pivot darf noch etwas liegen bleiben.

(40)

2.

3.

Ja, du hast unser Pivot gefunden

den Pfeilen markiert werden, müssen die Plätze tauschen.

(41)

2.

3.

Ja, du hast unser Pivot gefunden

Und nun?

Wer darf sich als nächstes bewegen?

Richtig, da der grüne Pfeil nun auf ein helleres Element zeigt, geht er einen Schritt nach rechts.

Nein, der blaue Pfeil ist noch nicht an der Reihe Nein, dieses Element ist in der richtigen Reihenfolge

Nein, das Pivot-Element darf sich erst bewegen, wenn sich die zwei Pfeile überkreuzt haben

Damit gehts weiter

(42)

2.

3.

Mit dem geht’s weiter

Ja, du hast unser Pivot gefunden

Und nun?

Wer ist an der Reihe?

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 ist in der richtigen

Reihenfolge Nein, das Pivot-Element

darf sich erst bewegen, wenn sich die zwei Pfeile überkreuzt haben

(43)

2.

3.

Wen triffts in dieser Runde?

Klicke den Auserwählten an.

Nein, der grüne Pfeil hat bereits geschuftet.

Er macht gerade Pause

Nein, der blaue Pfeil hat seine Arbeit bereits getan, er kann sich etwas

ausruhen

Nein, dieses Element kann sich ausruhen So ist‘s: Die Pfeile haben

sich überkreuzt, also muss nun unser Pivot aktiv werden

Mit dem geht’s weiter

Jein, eigentlich ist das die Antwort auf die nächste Frage

(44)

2.

3.

Mit welchem Element tauscht unser Pivot seinen Platz?

Unser Pivot tauscht seinen Platz sicher nicht mit einem grünen Pfeil

Unser Pivot hat keine Lust auf den Platz vom blauen Pfeil

Nein, dieser Platz gefällt unserem Pivot gar nicht

Unser Pivot will nicht am eigenen Platz bleiben

(45)

2.

3.

Ja genau!

Mit diesem tauscht es den Platz.

(46)

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)

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)

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

2.

3.

4.

(49)

Und was bedeutet das?

(50)

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)

Wir sind fertig!

Referenzen

ÄHNLICHE DOKUMENTE

Stockach (swb). Die Kirchen- gemeinde Herz-Jesu in Zizen- hausen begeht ihr Kirchenpa- trozinium am Sonntag, 29. Der Tag beginnt um 9 Uhr mit einem Festgottesdienst in

Ein entsprechen- der Antrag wurde gestellt, ob- wohl Stockach nach einem Ge- meinderatsbeschluss die Bestre- bungen auch mit Blick auf sein geplantes Schulzentrum zwi- schen

Bestenermittlung * Nachwuchsklasse * Deutscher Sportakrobatik Bund Siegerliste Mannschaftswertung.. Gütersloh

Beschriften Sie bitte im Bild die beiden Elektroden Anode und Kathode.. Hinweis: gemäss Definition ist die Anode dort wo die

Eine Verengung der Harnröhre kann aber nicht nur durch eine Prostatahyperplasie bedingt sein, sondern auch auf einer vorange- gangenen Entzündung beruhen.. Erkrankungen wie

Wählen Sie entweder direkt einen Platz durch Anklicken eines bunten Sitzes.. Oder wählen Sie

Durch die Bündelung dieser Verbraucher kann das Lastverschiebungspotential erschlossen werden und die Gebäudeautomation leistet durch ihren Beitrag zur Systemstabilität

Ein radioaktives Element X zerfällt mit einer Halbwertszeit von 8