02.11.2013 Aufrufe

PDF, 97KB - Westfälische Wilhelms-Universität Münster

PDF, 97KB - Westfälische Wilhelms-Universität Münster

PDF, 97KB - Westfälische Wilhelms-Universität Münster

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Kapitel 2: Das Konzept „Algorithmus“<br />

konkreten Ausführung auf einer Maschine (dem ausführbaren Programm in Form von<br />

Maschinencode).<br />

Auf der obersten Abstraktionsstufe ist der Algorithmus umgangssprachlich oder<br />

graphisch (Struktogramme, Sequenzdiagramme) formuliert. Schon in diesem Stadium<br />

muss die Formulierung den Anforderungen an algorithmische Beschreibungen genügen,<br />

insbesondere des präzisen Ausdruckes (siehe 2.1). Allerdings wird dies in der Praxis<br />

häufig nicht in dieser strikten Form gehandhabt. Vielmehr wird der Prozess der<br />

schrittweisen Verfeinerung dahingehend interpretiert, als dass die Präzision (und damit<br />

auch der Grad der Eindeutigkeit) der Beschreibung mit abnehmendem<br />

Abstraktionsniveau zu verstärken ist. Die Präzision erfolgt dann häufig erst im<br />

Implementierungsprozess, wenn der Algorithmus in einer konkreten<br />

Programmiersprache formuliert wird.<br />

Im Folgenden soll die schrittweise Verfeinerung mit vorausgehender<br />

„Strategieformulierung und Modellierung“ an einem Beispiel erläutert werden. Die<br />

Problemstellung lautet: „Sortiere eine Menge (unsortierter) ganzer Zahlen aufsteigend“.<br />

Modellierung: Die Menge der ganzen Zahlen wird durch ein Feld (Array)<br />

repräsentiert. Dabei repräsentiert jedes Feldelement eine ganze Zahl und ist über<br />

einen Index zugreifbar.<br />

Eine mögliche Strategie (einfach aber nicht die „effizienteste“): Teile das Feld in<br />

einen sortierten Teil und einen Unsortierten Teil wobei der unsortierte Teil<br />

verkleinert werden soll. Anfangs bestehe der sortierte Teil nur aus dem ersten<br />

Feldelement, der unsortierte aus den übrigen Feldelementen. Für alle Feldelemente<br />

im Array mache folgendes: entferne das erste Element aus dem unsortierten Teil<br />

und durchsuche den sortierten, um es an der korrekten Position einzufügen.<br />

füge ein<br />

1 2 3 5 7 9 < … < … < … 4 8 6<br />

sortiert<br />

unsortiert<br />

Abbildung 2: visualisierte Idee Insertion Sort<br />

Die erste algorithmische Abstraktion im Zuge der schrittweisen Verfeinerung hierzu<br />

ließe sich wie folgt darstellen:<br />

9

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!