Quicksort1 Präsentation der Arbeitsweise des Sortieralgorithmus Quicksort

Preview:

Citation preview

Quicksort 1

Quicksort

Präsentation der Arbeitsweisedes Sortieralgorithmus

Quicksort

Quicksort 2

01 2 3 45 710 11 9 6 8

wert=0i=0 j=11

Der grüne Zeiger wandert von links nach rechts. Er bleibt stehen,sobald er eine Zahl gefunden hat, die größer als wert ist.Der rote Zeiger wandert von rechts nach links. Er bleibt stehen,sobald er eine Zahl gefunden hat, die kleiner oder gleich wert ist.Dann werden die Zahlen an den Positionen des grünen und rotenZeigers miteinander vertauscht – größere Zahlen als wert wanderndamit von links nach rechts, kleinere Zahlen als wert wandern damitvon rechts nach links.

wert ist das partitionierende Element.

Quicksort 3

01 2 3 45 710 11 9 6 8

wert=0i=0 j=10

Quicksort 4

01 2 3 45 710 11 9 6 8

wert=0i=0 j=9

Quicksort 5

01 2 3 45 710 11 9 6 8

wert=0i=0 j=8

Quicksort 6

01 2 3 45 710 11 9 6 8

wert=0i=0 j=7

Quicksort 7

01 2 3 45 710 11 9 6 8

wert=0i=0 j=6

Quicksort 8

01 2 3 45 710 11 9 6 8

wert=0i=0 j=5

0 und 10 tauschen nun die Plätze – große Zahlen nach rechts,kleine Zahlen nach links.

Quicksort 9

101 2 3 45 70 11 9 6 8

wert=0i=1 j=4

Quicksort 10

101 2 3 45 70 11 9 6 8

wert=0i=1 j=3

Quicksort 11

101 2 3 45 70 11 9 6 8

wert=0i=1 j=2

Quicksort 12

101 2 3 45 70 11 9 6 8

wert=0i=1 j=1

Quicksort 13

101 2 3 45 70 11 9 6 8

wert=0i=1j=0

Sobald die Zeiger sich überlaufen, ist ein Durchlauf fertig.Neu partitionieren, wobei es nur einen rechten Teil gibt.

Quicksort 14

101 2 3 45 70 11 9 6 8

wert=2i=1 j=11

Der grüne Zeiger wandert von links nach rechts. Er bleibt stehen,sobald er eine Zahl gefunden hat, die größer als wert ist.Der rote Zeiger wandert von rechts nach links. Er bleibt stehen,sobald er eine Zahl gefunden hat, die kleiner oder gleich wert ist.Dann werden die Zahlen an den Positionen des grünen und rotenZeigers miteinander vertauscht – größere Zahlen als wert wanderndamit von links nach rechts, kleinere Zahlen als wert wandern damitvon rechts nach links.

Quicksort 15

101 2 3 45 70 11 9 6 8

wert=2i=1 j=10

Quicksort 16

101 2 3 45 70 11 9 6 8

wert=2i=1 j=9

Quicksort 17

101 2 3 45 70 11 9 6 8

wert=2i=1 j=8

Quicksort 18

101 2 3 45 70 11 9 6 8

wert=2i=1 j=7

Quicksort 19

101 2 3 45 70 11 9 6 8

wert=2i=1 j=6

2 und 11 tauschen nun die Plätze – große Zahlen nach rechts,kleine Zahlen nach links.

Quicksort 20

101 11 3 45 70 2 9 6 8

wert=2i=2 j=5

Quicksort 21

101 3 45 70 2 9 6 8

wert=2i=2 j=4

11

Quicksort 22

101 3 45 70 2 9 6 8

wert=2i=2 j=3

11

Quicksort 23

109 3 45 70 2 1 6 8

wert=2j=2 i=3

Neu partitionieren: linker Teil von 1 bis 2 mit wert=2,rechter Teil von 3 bis 11 mit wert=5.

11

Quicksort 24

109 3 45 70 2 1 6 8

wert=2j=2 i=3i=1 j=11

wert=5

11

Quicksort 25

104 3 95 70 1 2 6 8

wert=2i=2 i=4j=1 j=10

wert=5

11

Neu partitionieren ist links nicht mehr möglich.

Quicksort 26

104 3 95 70 1 2 6 8

i=4 j=9

wert=5

11

Quicksort 27

104 3 95 70 1 2 6 8

i=4 j=8

wert=5

11

Quicksort 28

104 6 95 70 1 2 3 8

i=5 j=7

wert=5

11

Quicksort 29

54 6 910 70 1 2 3 8

j=6

wert=5

11

i=6

Quicksort 30

54 6 910 70 1 2 3 8

i=6j=5

wert=5

11

Neu partitionieren: linker Teil von 3 bis 5 mit wert=3,rechter Teil von 6 bis 11 mit wert=6.

Quicksort 31

54 6 910 70 1 2 3 8

i=3 j=5

wert=6

11

wert=3j=11i=6

Quicksort 32

54 6 910 70 1 2 3 8

i=3 j=4

wert=6

11

wert=3j=10i=6

Quicksort 33

53 6 910 70 1 2 4 8

j=3 i=4

wert=6

11

wert=3j=9i=6

Neu partitionieren: Linke Seite: linker Teil nicht möglich,rechter Teil von 4 bis 5 mit wert=4.Rechte Seite läuft noch weiter.

Quicksort 34

53 6 910 70 1 2 4 8

j=5i=4

wert=6

11

wert=4j=8i=6

Quicksort 35

53 11 910 70 1 2 4 8

j=4i=4

wert=6

6

wert=4j=7i=7

Quicksort 36

53 11 910 70 1 2 4 8

j=3 i=5

wert=6

6

wert=4j=6 i=7

Neu partitionieren: beide linke Teile nicht möglich,rechter Teil von 7 bis 11 mit wert=7.

Quicksort 37

53 11 910 70 1 2 4 8

wert=7

6

j=11i=7

Neu partitionieren: beide linke Teile nicht möglich,rechter Teil von 7 bis 11 mit wert=7.

Quicksort 38

53 11 910 70 1 2 4 8

wert=7

6

j=10i=7

Quicksort 39

53 11 910 70 1 2 4 8

wert=7

6

j=9i=7

Quicksort 40

53 11 97 100 1 2 4 8

wert=7

6

j=8i=8

Quicksort 41

53 11 97 100 1 2 4 8

wert=7

6

j=8 i=8

Neu partitionieren: linker Teil nicht möglich,rechter Teil von 8 bis 11 mit wert=10.

Quicksort 42

53 11 97 100 1 2 4 8

wert=10

6

j=11i=8

Quicksort 43

53 9 117 100 1 2 4 8

wert=10

6

j=10i=9

Quicksort 44

53 9 117 80 1 2 4 10

wert=10

6

i=10j=9

Neu partitionieren: linker Teil von 8 bis 9 mit wert=9,rechter Teil von 10 bis 11 mit wert=10.

Quicksort 45

53 9 117 80 1 2 4 10

wert=10

6

i=10j=9 j=11i=8

Quicksort 46

53 8 117 90 1 2 4 10

wert=10

6

i=10i=9 j=10j=8

Neu partitionieren ist links nicht mehr möglich.

Quicksort 47

53 8 117 90 1 2 4 10

wert=10

6

i=11j=9

Fertig!

Recommended