• Keine Ergebnisse gefunden

Adjazenzlisten in einem Array

N/A
N/A
Protected

Academic year: 2022

Aktie "Adjazenzlisten in einem Array"

Copied!
14
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Besprechung Blatt 13 Graphalgorithmen Bin¨arb¨aume in einem Array Vorbereitung

Algorithmen und Datenstrukturen 14

Stefan Ploner

8. Februar 2012

(2)

Besprechung Blatt 13 Graphalgorithmen Bin¨arb¨aume in einem Array Vorbereitung

1 Besprechung Blatt 13 Fragen

2 Graphalgorithmen Allgemein Dijkstra Prim Kruskal

3 Bin¨arb¨aume in einem Array Indexberechnungen 4 Vorbereitung

Klausur

(3)

Besprechung Blatt 13 Graphalgorithmen Bin¨arb¨aume in einem Array Vorbereitung Fragen

Fragen zu Blatt 13?

(4)

Besprechung Blatt 13 Graphalgorithmen Bin¨arb¨aume in einem Array Vorbereitung Allgemein

Graphen im Allgemeinen

(v1,v2): gerichtete Kante

[v1,v2]: ungerichtete Kante

In ungerichteten Graphen sind keine Reflexiven Kanten erlaubt.

Vorsicht: H¨ohe eines Knotens im...

bin¨aren Suchbaum: Blatt = 0, sonst h¨oheres Kind + 1

Baum: Wurzel = 0, Kindknoten = H¨ohe des Vaterknotens + 1 Merke: Der “normale” Baum w¨achst von der Wurzel aus.

(5)

Besprechung Blatt 13 Graphalgorithmen Bin¨arb¨aume in einem Array Vorbereitung Allgemein

Adjazenzmatrix

Diagonale beschreibt, ob der Graph Schlingen enth¨alt

spiegelbar ¨uber die Diagonale → ungerichteter Graph

Zeile i beschreibt, ob ein direkter Weg von Knoten i zum Knoten j (Spaltennummer) vorhanden ist

Uberpr¨¨ ufung, ob Kannte von v1 nach v2 existiert, inO(1)

(6)

Besprechung Blatt 13 Graphalgorithmen Bin¨arb¨aume in einem Array Vorbereitung Allgemein

Adjazenzlisten

f¨ur jeden Knoten eine Liste mit seinen Nachbarn

Platzbedarf O(|V|+|E|) (Vertices + Edges)

Zugriff auf alle k Nachbarknoten inO(k)

(7)

Besprechung Blatt 13 Graphalgorithmen Bin¨arb¨aume in einem Array Vorbereitung Allgemein

Adjazenzlisten in einem Array

zun¨achst f¨ur jeden Knoten den Arrayindex speichern, an dem die Liste mit den Nachbarn beginnt

die Liste der Nachbarn geht von diesem Index bis zum Index des Nachfolgers

die Werte in den Listen sind die Ids der Nachbarknoten

kompakteste Darstellung

es k¨onnen keine Kosten gespeichert werden

Einf¨ugen sehr aufw¨andig

(8)

Besprechung Blatt 13 Graphalgorithmen Bin¨arb¨aume in einem Array Vorbereitung Dijkstra

Dijkstra’s Algorithmus

berechnet den k¨urzesten Weg zwischen 2 Knoten

Algorithmus: Nacheinander den Knoten expandieren, der auf dem k¨urzesten bekannten Weg erreichbar ist. (bzw. aus der Liste den Knoten mit den geringsten Pfadkosten expandieren)

Kosten neuer Knoten = Kosten der Kante + Kosten zum Vorg¨anger (nicht vergessen!)

(anfangs) unerreichbare Knoten haben “unendliche” Kosten

Aufwand: O(|E|+|V| ·log|V|)

Ausf¨uhrliches Beispiel in den Vorlesungsfolien 14-86ff

(9)

Besprechung Blatt 13 Graphalgorithmen Bin¨arb¨aume in einem Array Vorbereitung Prim

Algorithmus von Prim

berechnet einen minimalen Spannbaum

Algorithmus: Bei beliebigem Knoten starten, immer die g¨unstigste Kante zum Spannbaum hinzuf¨ugen, die einen Knoten des Spannbaums mit einem außerhalb verbindet.

Uberfl¨¨ ussige Kanten innerhalb des Spannbaums zur besseren Ubersicht streichen¨

Aufwand: O(|E|+|V| ·log|V|)

Prim ist wie Dijkstra, nur mit Kanten- statt Pfadkosten.

(10)

Besprechung Blatt 13 Graphalgorithmen Bin¨arb¨aume in einem Array Vorbereitung Kruskal

Algorithmus von Kruskal

Algorithmus: Sortiere Kanten nach Kosten, betrachte die Kanten mit der g¨unstigsten beginnend. Die Kante geh¨ort zur L¨osung, wenn sie in keinem Teilbaum einen Zyklus schließt.

Diese dann den aktuellen Teilb¨aumen hinzuf¨ugen.

das heißt 2 Knoten verbinden, Kante einem Baum hinzuf¨ugen oder 2 B¨aume verbinden

Aufwand: O(|E| ·log|E|) =O(|E| ·log|V|)

(11)

Besprechung Blatt 13 Graphalgorithmen Bin¨arb¨aume in einem Array Vorbereitung Indexberechnungen

Index des Kind- / Vaterelements in Bin¨ arb¨ aumen

(wenn der Array ab Index 0 gef¨ullt wird)

linkes Kind: 2i + 1

rechtes Kind: 2i+ 2

Vater: (i−1)/2 (eigentlich die Formel f¨ur das linke Kind, beim rechten ist das Ergebnis 0,5 zu viel. Aber: Integer-Division)

(12)

Besprechung Blatt 13 Graphalgorithmen Bin¨arb¨aume in einem Array Vorbereitung Klausur

Letzte AuD-Klausur

1 Wissensfragen (mit O-Kalk¨ul) (Multiple Choice)

2 Bin¨arb¨aume (Suchb¨aume und Halden) (P) (B10, 28P)

3 Streutabellen / Hashtables (P) (B11, 51 P)

4 Dynamische Programmierung (P)

5 Graphen (Dijkstra und Prim) (T) (B11, nur Zusatz)

6 WP-Kalk¨ul und Induktion (T)

7 UML-Klassendiagramm (T) (Im SS gab es nur 11 ¨Ubungsbl¨atter)

(13)

Besprechung Blatt 13 Graphalgorithmen Bin¨arb¨aume in einem Array Vorbereitung Klausur

Auswahl von Aufgaben aus diesem Semester

Blatt 04: Rekursionsarten, Induktion

Blatt 05: Aufwandsabsch¨atzung / O-Kalk¨ul (25 P) Blatt 07: UML (24 GP)

Blatt 08: Dynamische Programmierung (Zufallszahlen) (21 P) Blatt 09: WP-Kalk¨ul (30 EP + 20 GP !)

Blatt 10: Verkettete Liste (28 EP), Heap Theorie Blatt 11: Bin¨arer Suchbaum(Telefonbuch) (28 EP),

Hashtables Theorie (7 GP)

Blatt 12: Mergesort Implementierung (15 EP), Merge- und Heapsort Theorie (zusammen 23 EP)(Quadtrees)

(14)

Besprechung Blatt 13 Graphalgorithmen Bin¨arb¨aume in einem Array Vorbereitung Klausur

Wie k¨ onnte die Klausur aussehen?

O-Kalk¨ul in den Wissensfragen

Programmieraufgaben, z.B.:

Bin¨ar(er Such)baum (insert, height, isSearchTree) Merge- / Insertionsort

Dynamische Programmierung (ein Prinzip! → Folien)

Graphalgorithmen im Theorie-Teil

WP-Kalk¨ul wurde sehr ausf¨uhrlich gemacht

UML kommt auch immer was

ADTs?

Referenzen

ÄHNLICHE DOKUMENTE

Ziel: Finde einen Algorithmus, welcher im schlechtesten Fall nur linear viele Schritte benötigt. Algorithmus Select ( k -smallest)

Jeder Algorithmus zur Suche in sortierten Daten der Länge n benötigt im schlechtesten Fall Ω(log n) Vergleichsschritte.... Untere Schranke f ¨ur Suchen in

Jeder Algorithmus zur Suche in sortierten Daten der Länge n benötigt im schlechtesten Fall Ω(log n) Vergleichsschritte... Untere Schranke f ¨ur Suchen in

By default, the Hawk supplies term power on all ports. At least one device on any nSSI or SCSI interconnect must supply term power to the terminators. There is no harm in

MATHEMATISCHES INSTITUT DER UNIVERSITAT

Enrico Thomae, Philipp Wagner, Vera Kn¨ uppels. Pr¨ asenz¨ ubungen

Einführung in die Stochastik, Blatt 13. Andreas

Wir sprechen von einem vollen Bin ¨arbaum, wenn jeder innere Knoten zwei Nachfolger hat.. Der obige Bin ¨arbaum ist