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