21.11.2013 Aufrufe

Eine Einführung in die Programmiersprache C und die Grundlagen ...

Eine Einführung in die Programmiersprache C und die Grundlagen ...

Eine Einführung in die Programmiersprache C und die Grundlagen ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>E<strong>in</strong>e</strong> <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong> Informatik <strong>und</strong> <strong>die</strong> <strong>Programmiersprache</strong> C<br />

Bubblesort:<br />

Bubblesort ist e<strong>in</strong>er der e<strong>in</strong>fachsten Sortieralgorithmen, er ist aber auch nicht gerade sehr effizient.<br />

Vorgehen: Wir wandern durch das zu sortierende Feld <strong>und</strong> vergleichen nache<strong>in</strong>ander immer das<br />

aktuelle Feld mit se<strong>in</strong>em Nachbarn, <strong>und</strong> wenn <strong>die</strong> Reihenfolge der beiden Elemente nicht stimmt<br />

werden sie vertauscht. Das wird solange wiederholt bis das Feld sortiert ist. Der Algorithmus heisst<br />

Bubblesort, weil <strong>in</strong> jedem Durchgang <strong>die</strong> noch verbliebene grösste Zahl wie e<strong>in</strong>e Luftblase an ihren<br />

korrekten Platz aufsteigt.<br />

Da nach jedem Durchgang e<strong>in</strong> Element mehr bereits am korrekten Platz ist, kann der Vorgang so<br />

optimiert werden, das <strong>die</strong> bereits korrekt plazierten Elemente nicht mehr weiter sortiert werden. Es<br />

wird nicht jedesmal bis zum Ende des Feldes getauscht, sondern nur bis zum Beg<strong>in</strong>n des bereits<br />

sortierten Bereichs.<br />

Nicht Optimiert<br />

Pass 0 1 2 3 4<br />

0 5 9 1 7 6<br />

1.1 5 9 1 7 6<br />

1.2 5 9 1 7 6<br />

1.3 5 1 9 7 6<br />

1.4 5 1 7 9 6<br />

2.1 5 1 7 6 9<br />

2.2 1 5 7 6 9<br />

2.3 1 5 7 6 9<br />

2.4 1 5 6 7 9<br />

3.1 1 5 6 7 9<br />

3.2 1 5 6 7 9<br />

3.3 1 5 6 7 9<br />

3.4 1 5 6 7 9<br />

4.1 1 5 6 7 9<br />

4.2 1 5 6 7 9<br />

4.3 1 5 6 7 9<br />

4.4 1 5 6 7 9<br />

Optimiert<br />

Pass 0 1 2 3 4<br />

0 5 9 1 7 6<br />

1.1 5 9 1 7 6<br />

1.2 5 9 1 7 6<br />

1.3 5 1 9 7 6<br />

1.4 5 1 7 9 6<br />

2.1 5 1 7 6 9<br />

2.2 1 5 7 6 9<br />

2.3 1 5 7 6 9<br />

3.1 1 5 6 7 9<br />

3.2 1 5 6 7 9<br />

4.1 1 5 6 7 9<br />

Aktueller Vergleich<br />

Bereits Sortiert<br />

Grösstes Element <strong>in</strong> <strong>die</strong>sem Durchlauf<br />

Der Algorithmus braucht im optimierten Fall (N-1)*(N / 2) Vergleiche sowie im Durchschnitt halb<br />

so viele Vertauschungen (Im Schnitt muss nur jedes 2. Mal vertauscht werden). <strong>E<strong>in</strong>e</strong> Vertauschung<br />

kostet allerd<strong>in</strong>gs meistens 2-3mal mehr Rechenzeit als e<strong>in</strong> Vergleich.<br />

Das Feld ist sortiert, sobald <strong>in</strong> e<strong>in</strong>em Durchlauf ke<strong>in</strong>e Vertauschung mehr durchgeführt werden<br />

musste. Dies ist garantiert nach N Durchläufen der Fall.<br />

Gedruckt am 10.09.2009 14:23:00 Letzte Änderung am: 10. September 2009 Version 2.4.1, I. Oesch 89/147

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!