Premium Partner

Algorithmen & Datenstrukturen

2. Semester Informatik (HSLU)

2. Semester Informatik (HSLU)


Kartei Details

Karten 134
Lernende 21
Sprache Deutsch
Kategorie Informatik
Stufe Universität
Erstellt / Aktualisiert 21.02.2017 / 08.09.2023
Lizenzierung Keine Angabe
Weblink
https://card2brain.ch/box/20170221_algorithmen_datenstrukturen
Einbinden
<iframe src="https://card2brain.ch/box/20170221_algorithmen_datenstrukturen/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Was ist die Definition eines Algoritmus?

- Ein Algorithmus ist ein präzise festgelegtes Verfahren zur Lösung eines Problems; genauer gesagt von einer Problem-Klasse beinhaltend (unendlich) viele gleichartige Probleme. 

- Etwas salopp: Algorithmus = Lösungsverfahren (Rezept, Anleitung) 

- Probleme bzw. Problem-Klassen , die mit Algorithmen gelöst werden können, heissen (berechenbar)

Nennen Sie einfache Beispiele eines Algorithmus

- Berechnung des grössten gemeinsamen Teilers (ggT) für zwei beliebige natürliche Zahlen.
- Zeichnen der Verbindungslinie, welche zwei Punkte verbindet.
- Sortierung von zufällig vorliegenden ganze Zahlen.
- Finden des kürzesten Weges zwischen zwei Knoten in einem zusammenhängenden Graphen.
- Entscheiden, ob es sich bei einer vorliegenden natürlichen Zahl um eine Primzahl handelt.
- Berechnung des Integrals bei vorliegenden Funktionswerten in einem bestimmten Bereich.
- Finden einer Lösung in einem vorgegebenen Lösungsraum.

Was sind grundlegende Eigenschaften eines Algorithmus?

- schrittweises Verfahren
- ausführbare Schritte 
- eindeutiger nächster Schritt (determiniert)
- endet nach endlich vielen Schritten (terminiert)

Der Computer ist DER "Algorithmen-Cruncher". Anhand von was kann man sehen?

- arbeitet schrittweise, gemäss Programm

- Anweisung für Anweisung, jede Anweisung korrespondiert mit einem ausführbaren Befehl

- arbeitet präzise und schnell

Algorithmen sind ein zentrales Thema in der Informatik und in der Mathematik. Zeige Beispiele.

- Algorithmentheorie: Guter Lösungsalgorithmus für bestimmte Problemstellung?

- Komplexitätstheorie: Ressourcenverbrauch von Rechenzeit und Speicherbedarf?

- Berechenbarkeitstheorie: Was ist mit einer Maschine grundsätzlich lösbar bzw. nicht lösbar?

Was ist die Definition einer Datenstruktur?

Eine Datenstruktur ist ein Konzept zur Speicherung und Organisation von Daten. Es handelt sich um eine Struktur, weil die Daten in einer bestimmten Art und Weise angeordnet und verknüpft werden, um den Zugriff auf sie und ihre Verwaltung möglichst effizient zu ermöglichen. Datenstrukturen sind daher insbesondere auch durch die Operationen charakterisiert, welche Zugriff und Verwaltung realisieren.

Beispiele: 

Array: direkter Zugriff (+), fixe Grösse (-)
Liste: flexible Grösse (+), sequentieller Zugriff (-)

Algorithms + Data Structures = Programs. Erläutere.

Bei vielen Algorithmen hängt der Ressourcenbedarf, d.h. sowohl die benötigte Laufzeit als auch der Speicherbedarf, von der Verwendung geeigneter Datenstrukturen ab.

Algorithmen operieren auf Datenstrukturen und Datenstrukturen bedingen spezifische Algorithmen. Beides ist untrennbar miteinander verbunden!

Welche Fragen stellen sich betreffend Algorithmen und Datenstrukturen?

- Adäquat für kleine Probleme? Adäquat für grosse Probleme?
- Selber entwickeln oder aus Bibliothek wählen?
- Einfach zu verstehen, zu implementieren, zu warten oder schwierig?
- Schneller Algorithmus mit grossem Speicherbedarf oder umgekehrt?

Extrembeispiel: Ist n eine Primzahl, ja/nein?
- Prüfen, ob n durch 2, 3, 4, 5, 6, … , sqrt(n) ganzzahlig teilbar. Wenig Speicher, lange Rechenzeit
- Alle Primzahlen 2, 3, 5, 7, 11, … im Voraus in einer Tabelle abspeichern. Viel Speicher, schnell (natürlich kann man dies praktisch nur für eine endliche Anzahl Primzahlen tun)