Universität zu Köln. Historisch-Kulturwissenschaftliche Informationsverarbeitung
Jan G. Wieners // jan.wieners@uni-koeln.d...
Abschlussklausur am 04.02.2015
von 12:15 (pünktlich) bis 13:45 in
Hörsaal XXX, Gyrhofstr. 15
 Drei-Schichten Architektur / MVC
 Programmiersprachen – Konzepte
 Variablen
 Auswahlanweisungen
 Kontrollstrukturen
...
 Interpretiert vs. compiliert
 Typisierung: statisch, dynamisch, etc.
 Paradigmen:
 Funktional
 Objektorientiert
 Gr...
Darstellung
Daten
Logik
Model!
Spielfeld: 3 x 3 Felder
Auf jedem Feld wird die ID des Spielers
abgelegt, der / die das Feld angeklickt hat
var gam...
Spielfluss und
Anwendungslogik
Präsentation und Interaktion – die Spielschleife
SOLANGE kein Spieler / keine Spielerin das Spiel
gewonnen hat, VERFAHRE W...
Gewinn- und Abbruchbedingung
Ein Spieler / eine Spielerin hat das Spiel gewonnen,
WENN:
der Spieler drei seiner Symbole in...
Kontrollstrukturen
Unterscheidung von Kontrollstrukturen in:
 Auswahlanweisungen
 ?
 Wiederholungsanweisungen
 ?
 Sprunganweisungen
 ?
...
Unterscheidung von Kontrollstrukturen in:
 Auswahlanweisungen
 if
 if else
 (switch)
 Wiederholungsanweisungen
 whil...
Gewinn- und Abbruchbedingung
Ein Spieler / eine Spielerin hat das Spiel gewonnen,
WENN (IF):
der Spieler drei seiner Symbo...
Übung 1
Gewinnbedingung
Prüfen I: Hat ein Spieler / eine Spielerin drei ihrer
Symbole in (unmittelbarer) horizontaler
Rei...
// Test horizontale Felder
if (gameBoard[0][0] === 1 &&
gameBoard[1][0] === 1 &&
gameBoard[2][0] === 1) {
alert(“Spielerin...
// Test diagonale Felder
if (gameBoard[0][0] === 1 &&
gameBoard[1][1] === 1 &&
gameBoard[2][1] === 1) {
alert(“Spielerin m...
Präsentation und Interaktion – die Spielschleife
SOLANGE kein Spieler / keine Spielerin das Spiel
gewonnen hat, VERFAHRE W...
while (ausdruck){
anweisung1
anweisung2
anweisung3
}
 „Führe anweisung1 und anweisung2 und
anweisung3 so lange aus, wie d...
do {
anweisung1
anweisung2
anweisung3
anweisung4
...
} while (ausdruck)
Wiederholungsanweisungen: do while
for(initialisierung;
abbruchbedingung;
inkrementierung) {
anweisung1
anweisung2
anweisung3
anweisung4
...
}
Wiederholungsa...
Übung 2
SOLANGE kein Spieler / keine Spielerin das Spiel
gewonnen hat, VERFAHRE WIE FOLGEND:
WENN ein leeres Spielfeld ang...
 Drei-Schichten Architektur / MVC
 Programmiersprachen – Konzepte
 Variablen
 Arrays
 Auswahlanweisungen
 Kontrollst...
Abb.: Balzert, Heide: Lehrbuch der Objektmodellierung. Heidelberg, 2005.
var game = {
name : '',
setName : function( gameName ) {
this.name = gameName;
},
state : '',
getGameState : function() {
...
Algorithmen und
Datenstrukturen
Datenstrukturen
 Stack / Kellerspeicher
 Queue
 Liste
 Baum
 Traversierungsarten
 Preorder
 Inorder
 Postorder
 L...
Datentyp:
 Bauplan für eine Variable (benannte Speicherstelle im
Arbeitsspeicher des Rechners)
 Legt fest, welche Operat...
Datenstruktur = Daten + Funktionen
Datenstrukturen:
 Stacks (Stapel)
 Queues
 Listen
 Einfach verkettete Listen
 Dopp...
Stack / Kellerspeicher
Datenstruktur „Stack“
 Auch: „Kellerspeicher“
 Abstrakter Datentyp, bei dem Elemente eingefügt und
wieder entfernt werde...
Typische Stackoperationen / Schnittstellen
 push(x, s)
legt ein Element x auf den Stack s
 top(s), peek(s)
liefert das z...
Queue
Queue / Warteschlange
Listen
Liste  Folge von Elementen; jedes Element = Teil
einer Kette
Jeder Eintrag in der Liste verfügt nicht nur über
seinen Inh...
Um die Liste zu durchlaufen:
 Beginn beim ersten Element („Anker“ für den Beginn der
Liste)
 „next“ zeigt auf das nächst...
Element Einfügen:
 Ursprüngliche Liste:
 Liste nach Einfügen von Element „mat“
Einfach verkettete Liste
bat cat sat vat ...
Element Löschen:
 Ursprüngliche Liste:
 Liste nach Entfernen des Elements „cat“
Einfach verkettete Liste
bat cat sat vat...
Vorteil:
 Elemente lassen sich sehr schnell am Anfang der einfach
verketteten Liste einfügen
Nachteil:
 Über jedes einze...
Charakteristika: Jedes Element verfügt über
 Einen Inhalt
 Einen Zeiger auf das nachfolgende Element
 Einen Zeiger auf ...
Datenstrukturen √
 Stack / Kellerspeicher √
 Queue √
 Liste √
 Baum
 Traversierungsarten
Themenüberblick „Algorithmen...
Extensivform von Spielen (Tic Tac Toe)
Juul, Jesper: „255,168 ways of playing Tic Tac Toe”
(„http://www.jesperjuul.net/lud...
Der Minimax-Algorithmus
𝑥0
𝑥1 𝑥2
𝑥4 𝑥5 𝑥6 𝑥7 𝑥8 𝑥9 𝑥10 𝑥11 𝑥12
𝑥3
3 12 8 2 4 6 14 5 2
𝑠 𝑀𝐴𝑋1
𝑠 𝑀𝐴𝑋2
𝑠 𝑀𝐴𝑋3
MAX
MIN 3 2 2
3...
Baum: Begrifflichkeiten
Bäume
Wurzel
Kante
Innerer Knoten / Kindknoten
Blatt
Binärbaum: Definiert als ein Baum, dessen Knoten
über höchstens zwei Kindknoten verfügen dürfen:
Binärbäume
Traversieren  Jeden Knoten des Baumes
besuchen
Reihenfolge, in der die Knoten besucht werden:
 Preorder, auch: „Hauptrei...
Rekursive Regel:
 besuche die Wurzel
 Besuche den linken
Unterbaum
 Besuche den rechten
Unterbaum
 WLR
Preorder Traver...
Preorder Traversierung – Schritt 0
P
M
S
A A
L
E
T
R
E
E
Preorder Traversierung – Schritt 1
P
M
S
A A
L
E
T
R
E
EAusgabe: P
Preorder Traversierung – Schritt 2
P
M
S
A A
L
E
T
R
E
EAusgabe: P M
Preorder Traversierung – Schritt 3
P
M
S
A A
L
E
T
R
E
EAusgabe: P M S
Preorder Traversierung – Schritt 4
P
M
S
A A
L
E
T
R
E
EAusgabe: P M S A
Preorder Traversierung – Schritt 5
P
M
S
A A
L
E
T
R
E
EAusgabe: P M S A A
Preorder Traversierung – Schritt 6
P
M
S
A A
L
E
T
R
E
EAusgabe: P M S A A L
Preorder Traversierung – Schritt 7
P
M
S
A A
L
E
T
R
E
EAusgabe: P M S A A L E
Preorder Traversierung – Schritt 8
P
M
S
A A
L
E
T
R
E
EAusgabe: P M S A A L E R
Preorder Traversierung – Schritt 9
P
M
S
A A
L
E
T
R
E
EAusgabe: P M S A A L E R T
Preorder Traversierung – Schritt 10
P
M
S
A A
L
E
T
R
E
EAusgabe: P M S A A L E R T E
Preorder Traversierung – Schritt 11
P
M
S
A A
L
E
T
R
E
EAusgabe: P M S A A L E R T E E
Datenstrukturen √
 Stack / Kellerspeicher √
 Queue √
 Liste √
 Baum √
 Traversierungsarten √
 Preorder √
 Inorder √...
Such- und
Sortieralgorithmen
Extensivform von Spielen (Tic Tac Toe)
Juul, Jesper: „255,168 ways of playing Tic Tac Toe”
(„http://www.jesperjuul.net/lud...
Problemstellung: Wie finden wir eine gesuchte
Audio CD?
Umgebungsvariablen:
 CD-Sammlung ist unsortiert
ODER
 Sortierte ...
Sequenzielle / Lineare Suche in unsortierter Sammlung:
Anzahl Suchvorgänge bei n Elementen:
 minimal: 1(best case),
 max...
Sortierstrategien / -Verfahren:
 Insertionsort: Sortieren durch Einfügen
 Analog dem Vorgehen eines Kartenspielers: Neue...
Bubblesort
Bubblesort: Sortiert z.B. ein Array von Datensätzen durch wiederholtes
Vertauschen von Nachbarfeldern, die in falscher Rei...
Zu sortieren ist die Zahlenfolge 55 07 78 12 42
(vgl. http://de.wikipedia.org/wiki/Bubblesort)
1. Durchlauf:
55 07 78 12 4...
Zu sortieren ist die Zahlenfolge 55 07 78 12 42
(vgl. http://de.wikipedia.org/wiki/Bubblesort)
2. Durchlauf:
07 55 12 42 7...
/
Abschlussklausur am 04.02.2015
von 12:15 (pünktlich) bis 13:45 in
Hörsaal XXX, Gyrhofstr. 15
BIT I WiSe 2014 | Basisinformationstechnologie I - 10: Programmiersprachen III
BIT I WiSe 2014 | Basisinformationstechnologie I - 10: Programmiersprachen III
BIT I WiSe 2014 | Basisinformationstechnologie I - 10: Programmiersprachen III
Nächste SlideShare
Wird geladen in …5
×

BIT I WiSe 2014 | Basisinformationstechnologie I - 10: Programmiersprachen III

568 Aufrufe

Veröffentlicht am

BIT I WiSe 2014 | Basisinformationstechnologie I - 10: Programmiersprachen III

Veröffentlicht in: Bildung
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
568
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
127
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie
  • Gui-Schicht, Fachkonzeptschicht, Datenhaltungsschicht
    MVC
  • Wie prüfen, ob ein Spieler drei Symbole in diagonaler Reihenfolge abgelegt hat?
    Kontrollstrukturen
  • Algorithmus: Eindeutige Beschreibung eines endlichen Verfahrens zur Lösung einer bestimmten Klasse von Problemen

    Komplexität eines Algorithmus: Bedarf an Ressourcen (i.e. Rechenzeit und Speicherplatz)

    Güte eines Algorithmus:
    Qualität der Ergebnisse
    Laufzeit / Rechenbedarf des Algorithmus
  • FIFO  First In, First Out
    enQueue  Objekt hinzufügen
    deQueue  Objekt zurückgeben, anschließend entfernen

  • Extensivform
  • Knotenbeziehungen  Achsen:
    Elternknoten (parent) – Jedes Element verfügt über einen Elternknoten. Ausnahme: ???
    Vorfahre (ancestor) – Elternknoten von Knoten Beispiel: Der Knoten „2“ ist Vorfahre des Knotens „3“.
    Kind (child) – Untergeordnete Knoten Beispiel: „3“ ist Kindknoten von „2“.
    Geschwister (siblings): Knoten mit gleichen Elternknoten sind Geschwisterknoten. Beispiel: Der Knoten „3“ ist Geschwisterknoten des Knotens „4“.
  • Extensivform
  • BIT I WiSe 2014 | Basisinformationstechnologie I - 10: Programmiersprachen III

    1. 1. Universität zu Köln. Historisch-Kulturwissenschaftliche Informationsverarbeitung Jan G. Wieners // jan.wieners@uni-koeln.de Basisinformationstechnologie I Wintersemester 2014/15 21. Januar 2015 – Programmiersprachen III. Algorithmen und Datenstrukturen
    2. 2. Abschlussklausur am 04.02.2015 von 12:15 (pünktlich) bis 13:45 in Hörsaal XXX, Gyrhofstr. 15
    3. 3.  Drei-Schichten Architektur / MVC  Programmiersprachen – Konzepte  Variablen  Auswahlanweisungen  Kontrollstrukturen  Objektorientierte Programmierung  Objekt  Kapselung / Information Hiding / Geheimnisprinzip  Vererbung Themenüberblick „Programmiersprachen II“
    4. 4.  Interpretiert vs. compiliert  Typisierung: statisch, dynamisch, etc.  Paradigmen:  Funktional  Objektorientiert  Grundlegende Konzepte: Variablen, Arrays, Kontrollstrukturen, Funktionen, Objekte  Das Rad nicht neu erfinden: Design Patterns / Entwurfsmuster, Strukturierungsmuster: MVC (u.a.)  Modellierung Programmiersprachen – Charakteristika, Konzepte und Methoden
    5. 5. Darstellung Daten Logik
    6. 6. Model! Spielfeld: 3 x 3 Felder Auf jedem Feld wird die ID des Spielers abgelegt, der / die das Feld angeklickt hat var gameBoard = [][];
    7. 7. Spielfluss und Anwendungslogik
    8. 8. Präsentation und Interaktion – die Spielschleife SOLANGE kein Spieler / keine Spielerin das Spiel gewonnen hat, VERFAHRE WIE FOLGEND: WENN ein leeres Spielfeld angeklickt wurde: lege die aktuelle SpielerID im zweidimensionalen Array „gameGrid“ ab und stelle das Spielersymbol dar IM ANDEREN FALLE: tue nichts Prüfe die Gewinnbedingung
    9. 9. Gewinn- und Abbruchbedingung Ein Spieler / eine Spielerin hat das Spiel gewonnen, WENN: der Spieler drei seiner Symbole in (unmittelbarer) horizontaler Reihenfolge abgelegt hat ODER der Spieler drei Symbole in diagonaler Reihenfolge abgelegt hat
    10. 10. Kontrollstrukturen
    11. 11. Unterscheidung von Kontrollstrukturen in:  Auswahlanweisungen  ?  Wiederholungsanweisungen  ?  Sprunganweisungen  ? Kontrollstrukturen
    12. 12. Unterscheidung von Kontrollstrukturen in:  Auswahlanweisungen  if  if else  (switch)  Wiederholungsanweisungen  while  for  do while  Sprunganweisungen  return  break  continue Kontrollstrukturen
    13. 13. Gewinn- und Abbruchbedingung Ein Spieler / eine Spielerin hat das Spiel gewonnen, WENN (IF): der Spieler drei seiner Symbole in (unmittelbarer) horizontaler Reihenfolge abgelegt hat ODER (II) der Spieler drei Symbole in diagonaler Reihenfolge abgelegt hat
    14. 14. Übung 1 Gewinnbedingung Prüfen I: Hat ein Spieler / eine Spielerin drei ihrer Symbole in (unmittelbarer) horizontaler Reihenfolge abgelegt? Prüfen II: Finden sich drei Symbole eines Spielers in diagonaler Folge?
    15. 15. // Test horizontale Felder if (gameBoard[0][0] === 1 && gameBoard[1][0] === 1 && gameBoard[2][0] === 1) { alert(“Spielerin mit der ID 1 hat gewonnen!“); } Übung 1
    16. 16. // Test diagonale Felder if (gameBoard[0][0] === 1 && gameBoard[1][1] === 1 && gameBoard[2][1] === 1) { alert(“Spielerin mit der ID 1 hat gewonnen!“); } Übung 1
    17. 17. Präsentation und Interaktion – die Spielschleife SOLANGE kein Spieler / keine Spielerin das Spiel gewonnen hat, VERFAHRE WIE FOLGEND: WENN ein leeres Spielfeld angeklickt wurde: lege die aktuelle SpielerID im zweidimensionalen Array „gameGrid“ ab und stelle das Spielersymbol dar IM ANDEREN FALLE: tue nichts Prüfe die Gewinnbedingung
    18. 18. while (ausdruck){ anweisung1 anweisung2 anweisung3 }  „Führe anweisung1 und anweisung2 und anweisung3 so lange aus, wie die Bedingung „ausdruck“ WAHR (TRUE) ist.“ Wiederholungsanweisungen: while
    19. 19. do { anweisung1 anweisung2 anweisung3 anweisung4 ... } while (ausdruck) Wiederholungsanweisungen: do while
    20. 20. for(initialisierung; abbruchbedingung; inkrementierung) { anweisung1 anweisung2 anweisung3 anweisung4 ... } Wiederholungsanweisungen: for
    21. 21. Übung 2 SOLANGE kein Spieler / keine Spielerin das Spiel gewonnen hat, VERFAHRE WIE FOLGEND: WENN ein leeres Spielfeld angeklickt wurde: lege die aktuelle SpielerID im zweidimensionalen Array „gameGrid“ ab und stelle das Spielersymbol dar IM ANDEREN FALLE: tue nichts Prüfe die Gewinnbedingung
    22. 22.  Drei-Schichten Architektur / MVC  Programmiersprachen – Konzepte  Variablen  Arrays  Auswahlanweisungen  Kontrollstrukturen  Objektorientierte Programmierung  Objekt  Kapselung / Information Hiding / Geheimnisprinzip  Vererbung Themenüberblick „Programmiersprachen II“
    23. 23. Abb.: Balzert, Heide: Lehrbuch der Objektmodellierung. Heidelberg, 2005.
    24. 24. var game = { name : '', setName : function( gameName ) { this.name = gameName; }, state : '', getGameState : function() { return this.state; }, setGameState : function( gameState ) { this.state = gameState; }, […] }; Objektorientierte Programmierung
    25. 25. Algorithmen und Datenstrukturen
    26. 26. Datenstrukturen  Stack / Kellerspeicher  Queue  Liste  Baum  Traversierungsarten  Preorder  Inorder  Postorder  Levelorder Such- und Sortieralgorithmen Themenüberblick „Algorithmen und Datenstrukturen“
    27. 27. Datentyp:  Bauplan für eine Variable (benannte Speicherstelle im Arbeitsspeicher des Rechners)  Legt fest, welche Operationen mit einer Variable möglich sind  Bestimmt die interne Darstellung (Repräsentation) der Variablen im Rechner  Z.B. bool, int, float, double, unsigned int, etc. Algorithmen, Datenstrukturen
    28. 28. Datenstruktur = Daten + Funktionen Datenstrukturen:  Stacks (Stapel)  Queues  Listen  Einfach verkettete Listen  Doppelt verkettete Listen  Bäume  Binärbäume Algorithmen, Datenstrukturen
    29. 29. Stack / Kellerspeicher
    30. 30. Datenstruktur „Stack“  Auch: „Kellerspeicher“  Abstrakter Datentyp, bei dem Elemente eingefügt und wieder entfernt werden können LIFO-Prinzip: Last In, First Out – bei der Datenstruktur „Stack“ kann immer nur auf das Element zugegriffen werden, das als letztes eingefügt, d.h. auf den Stapel gelegt wurde
    31. 31. Typische Stackoperationen / Schnittstellen  push(x, s) legt ein Element x auf den Stack s  top(s), peek(s) liefert das zuletzt auf den Stack s gelegte Element (ohne das entsprechende Element zu entfernen)  pop(s) entfernt das zuletzt auf den Stack s gelegte Element und gibt es zurück  isEmpty(s) gibt an, ob der Stack s leer ist Datenstruktur Stack
    32. 32. Queue
    33. 33. Queue / Warteschlange
    34. 34. Listen
    35. 35. Liste  Folge von Elementen; jedes Element = Teil einer Kette Jeder Eintrag in der Liste verfügt nicht nur über seinen Inhalt, sondern darüber hinaus über einen Zeiger auf das nächste Listenelement: Einfach verkettete Liste
    36. 36. Um die Liste zu durchlaufen:  Beginn beim ersten Element („Anker“ für den Beginn der Liste)  „next“ zeigt auf das nächste Listenelement  Letztes Glied der Kette: next-Zeiger = NULL  Um wieder auf das erste Element zugreifen zu können: anfang-Zeiger auf das erste Element der Liste  Hilfszeiger auf innere Elemente: cursor Einfach verkettete Liste
    37. 37. Element Einfügen:  Ursprüngliche Liste:  Liste nach Einfügen von Element „mat“ Einfach verkettete Liste bat cat sat vat NULLstart bat cat sat vat NULLstart mat
    38. 38. Element Löschen:  Ursprüngliche Liste:  Liste nach Entfernen des Elements „cat“ Einfach verkettete Liste bat cat sat vat NULLstart bat cat sat vat NULLstart
    39. 39. Vorteil:  Elemente lassen sich sehr schnell am Anfang der einfach verketteten Liste einfügen Nachteil:  Über jedes einzelne Element muss iteriert werden Einfach verkettete Liste bat cat sat vat NULLstart
    40. 40. Charakteristika: Jedes Element verfügt über  Einen Inhalt  Einen Zeiger auf das nachfolgende Element  Einen Zeiger auf das vorhergehende Element Vorteile  Möglichkeit, vom Ende der Liste zum Beginn zu iterieren  Schnelles Löschen und Einfügen von Elementen Nachteil  Speicherplatzbedarf durch zweiten Zeiger erhöht Doppelt verkettete Liste bat cat sat vat NULLstart
    41. 41. Datenstrukturen √  Stack / Kellerspeicher √  Queue √  Liste √  Baum  Traversierungsarten Themenüberblick „Algorithmen und Datenstrukturen“
    42. 42. Extensivform von Spielen (Tic Tac Toe) Juul, Jesper: „255,168 ways of playing Tic Tac Toe” („http://www.jesperjuul.net/ludologist/255168-ways-of-playing-tic-tac-toe)
    43. 43. Der Minimax-Algorithmus 𝑥0 𝑥1 𝑥2 𝑥4 𝑥5 𝑥6 𝑥7 𝑥8 𝑥9 𝑥10 𝑥11 𝑥12 𝑥3 3 12 8 2 4 6 14 5 2 𝑠 𝑀𝐴𝑋1 𝑠 𝑀𝐴𝑋2 𝑠 𝑀𝐴𝑋3 MAX MIN 3 2 2 3 min(3,12,8)=3 min(2,4,6)=2 max(3,2,2)=3 min(14,5,2)=2
    44. 44. Baum: Begrifflichkeiten Bäume Wurzel Kante Innerer Knoten / Kindknoten Blatt
    45. 45. Binärbaum: Definiert als ein Baum, dessen Knoten über höchstens zwei Kindknoten verfügen dürfen: Binärbäume
    46. 46. Traversieren  Jeden Knoten des Baumes besuchen Reihenfolge, in der die Knoten besucht werden:  Preorder, auch: „Hauptreihenfolge“ / Tiefensuche  Inorder, auch: „symmetrische Reihenfolge“  Postorder, auch: „Nebenreihenfolge“  Levelorder, auch: „Breitensuche“ Traversierung
    47. 47. Rekursive Regel:  besuche die Wurzel  Besuche den linken Unterbaum  Besuche den rechten Unterbaum  WLR Preorder Traversierung Quelle: http://de.wikipedia.org/w/index.php?title=Datei:Depth-First-Search.gif&filetimestamp=20090326120256 (MRE)
    48. 48. Preorder Traversierung – Schritt 0 P M S A A L E T R E E
    49. 49. Preorder Traversierung – Schritt 1 P M S A A L E T R E EAusgabe: P
    50. 50. Preorder Traversierung – Schritt 2 P M S A A L E T R E EAusgabe: P M
    51. 51. Preorder Traversierung – Schritt 3 P M S A A L E T R E EAusgabe: P M S
    52. 52. Preorder Traversierung – Schritt 4 P M S A A L E T R E EAusgabe: P M S A
    53. 53. Preorder Traversierung – Schritt 5 P M S A A L E T R E EAusgabe: P M S A A
    54. 54. Preorder Traversierung – Schritt 6 P M S A A L E T R E EAusgabe: P M S A A L
    55. 55. Preorder Traversierung – Schritt 7 P M S A A L E T R E EAusgabe: P M S A A L E
    56. 56. Preorder Traversierung – Schritt 8 P M S A A L E T R E EAusgabe: P M S A A L E R
    57. 57. Preorder Traversierung – Schritt 9 P M S A A L E T R E EAusgabe: P M S A A L E R T
    58. 58. Preorder Traversierung – Schritt 10 P M S A A L E T R E EAusgabe: P M S A A L E R T E
    59. 59. Preorder Traversierung – Schritt 11 P M S A A L E T R E EAusgabe: P M S A A L E R T E E
    60. 60. Datenstrukturen √  Stack / Kellerspeicher √  Queue √  Liste √  Baum √  Traversierungsarten √  Preorder √  Inorder √  Postorder √  Levelorder √ Such- und Sortieralgorithmen Themenüberblick „Algorithmen und Datenstrukturen“
    61. 61. Such- und Sortieralgorithmen
    62. 62. Extensivform von Spielen (Tic Tac Toe) Juul, Jesper: „255,168 ways of playing Tic Tac Toe” („http://www.jesperjuul.net/ludologist/255168-ways-of-playing-tic-tac-toe)
    63. 63. Problemstellung: Wie finden wir eine gesuchte Audio CD? Umgebungsvariablen:  CD-Sammlung ist unsortiert ODER  Sortierte CD-Sammlung Problemstellung Suche
    64. 64. Sequenzielle / Lineare Suche in unsortierter Sammlung: Anzahl Suchvorgänge bei n Elementen:  minimal: 1(best case),  maximal: n (worst case)  Durchschnittlich müssen die Hälfte der Einträge durchgesehen werden, um das gewünschte Element zu finden (average case)  Anzahl der Suchschritte steigt proportional mit der Anzahl der Einträge Lineare Suche Quelle und Bildnachweis: http://www-i1.informatik.rwth-aachen.de/~algorithmus/algo1.php
    65. 65. Sortierstrategien / -Verfahren:  Insertionsort: Sortieren durch Einfügen  Analog dem Vorgehen eines Kartenspielers: Neue Karten werden einzeln einsortiert, bevor die nächste Karte aufgenommen wird  Bubblesort: Vergleichsbasierter Sortieralgorithmus  Heapsort  Quicksort (vgl. C.A.R. Hoare) Sortieralgorithmen
    66. 66. Bubblesort
    67. 67. Bubblesort: Sortiert z.B. ein Array von Datensätzen durch wiederholtes Vertauschen von Nachbarfeldern, die in falscher Reihenfolge stehen Wird so lange wiederholt, bis das Array vollständig sortiert ist. Dabei wird das Array in mehreren Durchgängen von links nach rechts durchwandert. Bei jedem Durchgang werden alle Nachbarfelder verglichen und ggf. vertauscht. Nach dem 1. Durchgang hat man folgende Situation:  Das größte Element ist ganz rechts.  Alle anderen Elemente sind zwar zum Teil an besseren Positionen (also näher an der endgültigen Position), im Allgemeinen aber noch unsortiert. Wandern des größten Elementes nach rechts  Aufsteigen von Luftblasen: Größte Luftblase steigt nach oben Bubblesort
    68. 68. Zu sortieren ist die Zahlenfolge 55 07 78 12 42 (vgl. http://de.wikipedia.org/wiki/Bubblesort) 1. Durchlauf: 55 07 78 12 42 07 55 78 12 42 07 55 78 12 42 07 55 12 78 42 ? ? ? Bubblesort
    69. 69. Zu sortieren ist die Zahlenfolge 55 07 78 12 42 (vgl. http://de.wikipedia.org/wiki/Bubblesort) 2. Durchlauf: 07 55 12 42 78 07 55 12 42 78 07 12 55 42 78 07 12 42 55 78 07 12 42 55 78 3. Durchlauf: 07 12 42 55 78 07 12 42 55 78 07 12 42 55 78 07 12 42 55 78  Fertig sortiert. Bubblesort
    70. 70. /
    71. 71. Abschlussklausur am 04.02.2015 von 12:15 (pünktlich) bis 13:45 in Hörsaal XXX, Gyrhofstr. 15

    ×