Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke
Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke
Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke
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.1 Straight Insertion:<br />
Direktes E<strong>in</strong>fügen ist ebenfalls e<strong>in</strong>er der e<strong>in</strong>facheren Algorithmen. Er ist etwas effizienter als Bubblesort.<br />
Vorgehen: Das sortierte Feld wächst von vorne nach h<strong>in</strong>ten. Wir wandern durch das zu sortierende<br />
Feld <strong>und</strong> fügen jedes Element an se<strong>in</strong>er korrekten Position im bereits sortierten Teilfeld e<strong>in</strong>. Das<br />
Teilfeld wird von der E<strong>in</strong>fügeposition an nach h<strong>in</strong>ten verschoben.<br />
Wenn wir das letzte Element e<strong>in</strong>gefügt haben, ist das Feld sortiert.<br />
Der Algorithmus heisst Straight Insertion, weil jedes Element direkt dort e<strong>in</strong>gefügt wird wo es<br />
h<strong>in</strong>gehört.<br />
Pass 0 1 2 3 4 5<br />
0 5 9 1 7 6 4<br />
1.1 5 9 1 7 6 4<br />
2.1 5 9 1 7 6 4<br />
2.2 5 9 1 7 6 4<br />
2.3 5 9 1 7 6 4<br />
3.1 1 5 9 7 6 4<br />
3.2 1 5 9 7 6 4<br />
3.3 1 5 9 7 6 4<br />
3.4 1 5 9 7 6 4<br />
3.5 1 5 9 7 6 4<br />
4.1 1 5 7 9 6 4<br />
4.2 1 5 7 9 6 4<br />
4.3 1 5 7 9 6 4<br />
4.4 1 5 7 9 6 4<br />
4.5 1 5 7 9 6 4<br />
5.1 1 5 6 7 9 4<br />
5.2 1 5 6 7 9 4<br />
5.3 1 5 6 7 9 4<br />
5.4 1 5 6 7 9 4<br />
1 4 5 6 7 9<br />
1 4 5 6 7 9<br />
Bereich zum Schieben<br />
Aktueller Vergleich<br />
Bereits Sortiert<br />
aktuelles Element<br />
Der Algorithmus braucht durchschnittlich (N-1)*(N / 2) Vergleiche <strong>und</strong> muss im Durchschnitt etwa<br />
ebensoviele Elemente verschieben. (Das Suchen der E<strong>in</strong>fügeposition könnte mit b<strong>in</strong>ary search erfolgen,<br />
damit wären nur noch etwa log2(N!) *) Vergleiche nötig, aber <strong>die</strong> Anzahl der Verschiebungen<br />
bleibt nach wie vor bei (N-1) * (N / 2) ).<br />
*) log2(N!) = log2(1) + log2(2) + log2(3) + ... + log2(N)<br />
Gedruckt am 11.09.2008 13:04:00 Letzte Änderung am: 11. September 2008 Version 2.4, I. Oesch 90/147