Datenstrukturen und Algorithmen Flashcards
Wie lässt sich die Mathematik in der Softwareentwicklung beschreiben?
Mathematik: Dies ist die abstrakteste Ebene. Eine Funktion beschreibt im Wesentlichen das Ergebnis einer Berechnung für bestimmte Eingaben.
Wie lässt sich die Algorithmik in der Softwareentwicklung beschreiben?
Algorithmik: Das Verfahren zur Konstruktion der Ausgabe aus der Eingabe wird angegeben. Ziel dabei ist es, das Verfahren in einer für Menschen
verständlichen Form anzugeben.
Wie lässt sich die Programmierung in der Softwareentwicklung beschreiben?
Ein Programm ist eine Möglichkeit, einen Algorithmus zu beschreiben. Für komplexe (und damit interessante) Algorithmen ist eine Beschreibung für den Entwurf und die Analyse nicht angemessen.
Welche Eigenschaften hat ein Algorithmus?
Eigenschaften: Ausführbarkeit, Ausführender eines Algorithmus (Mensch oder Maschine) = Prozessor Teilalgorithmen Hinreichend genaue Detaillierung (abhängig vom Prozessor) Ablaufstrukturen Endlichkeit Effizienz (Laufzeit, Speicherplatz)
Wie lautet das EVA Prinzip eines Algorithmus?
Ein Algorithmus wird durch eine endliche Folge von
Instruktionen beschrieben, die eindeutig festlegen, wie aus
bestimmten Eingabedaten neue Ausgabedaten durch
Verarbeitung ermittelt werden (EVA-Prinzip).
Welche Bewertungskriterien kann man an einem Algorithmus ansetzen?
Bewertungskriterien für Algorithmen:
Welche Voraussetzungen gelten für den Algorithmus,
insbesondere, welche Eingaben sind erlaubt und welche
Ausgaben sind möglich?
Kommt ein durch den Algorithmus beschriebener
Prozess zum Ende?
Liefert der Prozess ein korrektes Ergebnis (Testen,
Verifikation)? Effektivität
Welchen Aufwand erfordert der Algorithmus
(Zeitaufwand, Speicherbedarf)? Effizienz
Lesbarkeit, Wartbarkeit (Dokumentation!)
Weitere, leider nicht so einfach messbare oder sichtbare
Eigenschaften, sind beispielsweise Änderbarkeit,
Portabilität (Übertragbarkeit des Programms auf andere
Rechner) und vor allem die Zuverlässigkeit.
Nenne 2 Ansätze zur Bestimmung der Laufzeit von Algorithmen:
- Verwende einen idealisierten Modellrechner als
Referenzmaschine - Zähle die Ausführungszahl ausgezeichneter Anweisungen
Bei komplexeren Algorithmen ist die „Streuung“ der
Laufzeiten im Allgemeinen groß.
Spezialfälle, wie z.B.
Laufzeiten im besten Fall (best case): Tbest
Laufzeiten im schlechtesten Fall (worst case): T worst
das durchschnittliche Verhalten (average case): Tavg
Was bedeutet Kapselung bei abstrakten Datentypen.
?
Was ist das Geheimnsiprinzip bei Abstrakten Datentypen
?
Wie kann man einen Abstrakten Datentyp beschreiben?
Angabe von Objekten bestimmter
Wie definiert man Axiome eines ADTs
?