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

*)<br />

log2(N!) = log2(1) + log2(2) + log2(3) + ... + log2(N)<br />

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!