• Keine Ergebnisse gefunden

B1.1¨Ubersicht B1.1¨UbersichtB1.2DatenstrukturenB1.3SortierenmitHeaps AlgorithmenundDatenstrukturen AlgorithmenundDatenstrukturen ¨Ubersicht

N/A
N/A
Protected

Academic year: 2022

Aktie "B1.1¨Ubersicht B1.1¨UbersichtB1.2DatenstrukturenB1.3SortierenmitHeaps AlgorithmenundDatenstrukturen AlgorithmenundDatenstrukturen ¨Ubersicht"

Copied!
5
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Algorithmen und Datenstrukturen

B1. Einf¨ uhrung in Datenstrukturen

Marcel L¨ uthi and Gabriele R¨ oger

Universit¨ at Basel

7. M¨ arz 2019

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 7. M¨arz 2019 1 / 19

Algorithmen und Datenstrukturen

7. M¨ arz 2019 — B1. Einf¨ uhrung in Datenstrukturen

B1.1 ¨ Ubersicht

B1.2 Datenstrukturen B1.3 Sortieren mit Heaps

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 7. M¨arz 2019 2 / 19

B1. Einf¨uhrung in Datenstrukturen Ubersicht¨

B1.1 ¨ Ubersicht

B1. Einf¨uhrung in Datenstrukturen Ubersicht¨

Ubersicht ¨

A&D

Sortieren Komplexit¨ ats-

analyse Fundamentale Datenstrukturen

Suchen Graphen

Strings Weiterf¨ uhrende

Themen

(2)

B1. Einf¨uhrung in Datenstrukturen Ubersicht¨

Ausblick : Fundamentale Datenstrukturen

I Datenabstraktion (Abstrakte Datentypen)

I Multimengen, Stapel, (Priorit¨ ats-) Warteschlangen I Datenstrukturen

I Arrays, Verkettete Listen, B¨ aume, Heaps

H¨ ohepunkt: Heapsort

Elegantes Zusammenspiel Algorithmus und Datenstruktur.

I Clevere Datenstruktur - Simpler Algorithmus I Garantiertes Laufzeitverhalten O(n log n)

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 7. M¨arz 2019 5 / 19

B1. Einf¨uhrung in Datenstrukturen Datenstrukturen

B1.2 Datenstrukturen

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 7. M¨arz 2019 6 / 19

B1. Einf¨uhrung in Datenstrukturen Datenstrukturen

Datenstrukturen

I Programmieren ist mehr als Algorithmen schreiben

I Datenorganisation ist zentral

I Elegante Datenstrukturen f¨ uhren zu elegantem Code I Programmierer

I braucht Katalog von Datenstrukturen I muss Eigenschaften

kennen

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 7. M¨arz 2019 7 / 19

B1. Einf¨uhrung in Datenstrukturen Datenstrukturen

Ubersicht ¨

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 7. M¨arz 2019 8 / 19

(3)

B1. Einf¨uhrung in Datenstrukturen Datenstrukturen

Datenstrukturen

Bad programmers worry about the code. Good programmers worry about data structures and their relationships.

Linus Torvalds

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 7. M¨arz 2019 9 / 19

B1. Einf¨uhrung in Datenstrukturen Datenstrukturen

Datenstrukturen

Show me your flowcharts and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won’t usually

need your flowcharts; they’ll be obvious.

Fred Brooks

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 7. M¨arz 2019 10 / 19

B1. Einf¨uhrung in Datenstrukturen Sortieren mit Heaps

B1.3 Sortieren mit Heaps

B1. Einf¨uhrung in Datenstrukturen Sortieren mit Heaps

Beispiel: Sortieren mit Heaps (Ausblick)

Datenstruktur: Heap

Ein (bin¨ arer) min-Heap ist ein vollst¨ andiger bin¨ arer Baum, bei dem

gilt, dass der Wert in jedem Knoten kleiner gleich dem Wert seiner

beiden Kindern (sofern vorhanden) ist.

(4)

B1. Einf¨uhrung in Datenstrukturen Sortieren mit Heaps

Aufbauen eines Heaps (Wandtafel)

Elemente: 7, 13, 5, 8, 1, 2

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 7. M¨arz 2019 13 / 19

B1. Einf¨uhrung in Datenstrukturen Sortieren mit Heaps

Entfernen des kleinsten Elements (Wandtafel)

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 7. M¨arz 2019 14 / 19

B1. Einf¨uhrung in Datenstrukturen Sortieren mit Heaps

Jupyter notebook

Schreiben Sie einen Sortieralgorithmus

Jupyter Notebook: heapq.ipynb

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 7. M¨arz 2019 15 / 19

B1. Einf¨uhrung in Datenstrukturen Sortieren mit Heaps

Beispiel: Sortieren mit Heaps (Ausblick)

Idee des Algorithmus:

I Baue Heap aus unsortierter Liste I Solange Elemente im Heap sind

I Entferne kleinstes Element (Wurzel) I Schreibe Element in (neue) Liste I Stelle Heapbedingung wieder her

I Neue Liste enth¨ alt Elemente in sortierter Reihenfolge Heapsort: Gleiche Idee, aber inplace.

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 7. M¨arz 2019 16 / 19

(5)

B1. Einf¨uhrung in Datenstrukturen Sortieren mit Heaps

Beispiel: Sortieren mit Heaps (Ausblick)

Offene Fragen:

I Wie schnell k¨ onnen wir Heap aus n unsortierten Elementen aufbauen?

I Antwort: Naiv: In O(n log 2 n) Operationen. Trickreich: In O(n) I Wie schnell k¨ onnen wir Heapbedingung nach Entfernen

wiederherstellen?

I Antwort: In O(log 2 n) Operationen

I Wie gross ist die gesamte Laufzeitkomplexit¨ at I Antwort: In O(n log 2 n) Operationen

Komplexit¨ at verschoben von Algorithmus nach Datenstruktur

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 7. M¨arz 2019 17 / 19

B1. Einf¨uhrung in Datenstrukturen Sortieren mit Heaps

Zusammenfassung

I Algorithmen und Datenstrukturen arbeiten zusammen I (Teil der) Komplexit¨ at kann verschoben werden I Datenstrukturen k¨ onnen meist visualisiert/graphisch

verstanden werden

I Oft gilt: Gute Datenstrukturen ⇒ Einfach(ere) Programme Details von Heapsort folgen ...

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 7. M¨arz 2019 18 / 19

B1. Einf¨uhrung in Datenstrukturen Sortieren mit Heaps

Sch¨ one Fasnachtsferien

Quelle: Basler-Fasnacht.info

Referenzen

ÄHNLICHE DOKUMENTE

I Einf¨ uhrung und einfache Implementationen (Diese Woche) I Bin¨ are Suchb¨ aume (Diese Woche).. I 2-3-B¨ aume und Rot-Schwarz B¨ aume (N¨ achste Woche) I Hashtabellen (N¨

In einer auf Verkettung basierenden Hashtabelle mit M Listen und N Schl¨ usseln ist die Anzahl der Vergleiche (Gleichheitstests) f¨ ur Einf¨ ugungen und erfolglose Suchen ∼ N