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

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!