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 ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<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 />
23.2 Straight Selection:<br />
Direktes Auswählen gehört auch zu den e<strong>in</strong>fachen Algorithmen. Auch <strong>die</strong>ser Algorithmus ist etwas<br />
effizienter als Bubblesort.<br />
Vorgehen: Das sortierte Feld wächst von vorne nach h<strong>in</strong>ten. Wir suchen jeweils im unsortierten Teil<br />
des Feldes den kle<strong>in</strong>sten Wert, <strong>und</strong> hängen <strong>die</strong>sen h<strong>in</strong>ten an den sortierten Teil des Feldes an. Das<br />
Anhängen geschieht, <strong>in</strong>dem wir das Element direkt h<strong>in</strong>ter dem sortierten Feld mit dem neu gef<strong>und</strong>enen<br />
Element vertauschen (Achtung, dadurch wird das Verfahren <strong>in</strong>stabil, für e<strong>in</strong> stabiles Sortieren<br />
müsste das Restfeld verschoben werden um Platz für das anzuhängende Element zu schaffen).<br />
Wenn wir das zweitletzte Element des Restfeldes e<strong>in</strong>gefügt haben, ist das Feld sortiert.<br />
Der Algorithmus heisst Straight Selection, weil immer das Element zum Anhängen ausgewählt<br />
wird, das auch genau dorth<strong>in</strong> gehört.<br />
Pass 0 1 2 3 4 5<br />
0 5 9 7 1 6 4<br />
1.1 5 9 7 1 6 4<br />
2.1 1 9 7 5 6 4<br />
2.2 1 9 7 5 6 4<br />
2.3 1 4 7 5 6 9<br />
3.1 1 4 7 5 6 9<br />
3.2 1 4 5 7 6 9<br />
3.3 1 4 5 7 6 9<br />
3.4 1 4 5 6 7 9<br />
3.5 1 4 5 6 7 9<br />
4.1 1 4 5 6 7 9<br />
4.2 1 4 5 6 7 9<br />
1 4 5 6 7 9<br />
Aktueller Tausch<br />
Bereits Sortiert<br />
aktuell kle<strong>in</strong>stes Element<br />
Der Algorithmus braucht durchschnittlich (N-1)*(N / 2) Vergleiche zum Suchen des kle<strong>in</strong>sten Elementes<br />
<strong>und</strong> muss etwa (N-1) Elemente Vertauschen.<br />
23.3 H<strong>in</strong>weis<br />
Die drei hier vorgestellten Algorithmen haben alle e<strong>in</strong> geme<strong>in</strong>sames Problem, nämlich dass <strong>die</strong> benötigte<br />
Rechenzeit quadratisch zur Anzahl der zu sortierenden Elemente zunimmt. Es gibt bessere<br />
Algorithmen, deren Rechenaufwand nur mit N*log(N) zunimmt. (Z. B. Quicksort oder Heapsort).<br />
Gedruckt am 10.09.2009 14:23:00 Letzte Änderung am: 10. September 2009 Version 2.4.1, I. Oesch 91/147