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