• Keine Ergebnisse gefunden

17. M¨ arz 2021

N/A
N/A
Protected

Academic year: 2022

Aktie "17. M¨ arz 2021"

Copied!
4
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Algorithmen und Datenstrukturen

A8. Laufzeitanalyse: Top-Down-Mergesort

Marcel L¨ uthi and Gabriele R¨ oger

Universit¨ at Basel

17. M¨ arz 2021

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 17. M¨arz 2021 1 / 13

Algorithmen und Datenstrukturen

17. M¨ arz 2021 — A8. Laufzeitanalyse: Top-Down-Mergesort

A8.1 Beispiel: Top-Down-Mergesort

A8.2 Zusammenfassung

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 17. M¨arz 2021 2 / 13

Inhalt dieser Veranstaltung

A&D

Sortieren Komplexit¨ ats-

analyse Fundamentale Datenstrukturen

Suchen Graphen

Strings Weiterf¨ uhrende

Themen

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 17. M¨arz 2021 3 / 13

Was bisher geschah und wie es weiter geht

I Letztes Mal: sehr detaillierte Laufzeitanalyse f¨ ur Selectionsort und Bottom-Up-Mergesort

I heute noch analoge Analyse f¨ ur Top-Down-Mergesort als Beispiel eines rekursiven Divide-and-Conquer-Verfahrens I danach Landau-Symbole f¨ ur asymptotisches Laufzeitverhalten I und die

” schnelle” Laufzeitanalyse in der Praxis

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 17. M¨arz 2021 4 / 13

(2)

A8. Laufzeitanalyse: Top-Down-Mergesort Beispiel: Top-Down-Mergesort

A8.1 Beispiel: Top-Down-Mergesort

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 17. M¨arz 2021 5 / 13

A8. Laufzeitanalyse: Top-Down-Mergesort Beispiel: Top-Down-Mergesort

Merge-Schritt-Ergebnis vom letzten Mal

1

def merge(array, tmp, lo, mid, hi):

2

i = lo

3

j = mid + 1

4

for k in range(lo, hi + 1): # k = lo,...,hi

5

if j > hi or (i <= mid and array[i] <= array[j]):

6

tmp[k] = array[i]

7

i += 1

8

else:

9

tmp[k] = array[j]

10

j += 1

11

for k in range(lo, hi + 1): # k = lo,...,hi

12

array[k] = tmp[k]

Theorem

Der Merge-Schritt hat lineare Laufzeit, d.h. es gibt Konstanten c, c 0 , n 0 > 0, so dass f¨ ur alle n ≥ n 0 : cn ≤ T (n) ≤ c 0 n.

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 17. M¨arz 2021 6 / 13

A8. Laufzeitanalyse: Top-Down-Mergesort Beispiel: Top-Down-Mergesort

Top-Down-Mergesort

1

def sort(array):

2

tmp = [0] * len(array) # [0,...,0] with same size as array

3

sort_aux(array, tmp, 0, len(array) - 1)

4

5

def sort_aux(array, tmp, lo, hi):

6

if hi <= lo:

7

return

8

mid = lo + (hi - lo) // 2

9

sort_aux(array, tmp, lo, mid)

10

sort_aux(array, tmp, mid + 1, hi)

11

merge(array, tmp, lo, mid, hi)

Analyse f¨ ur m = hi − lo + 1 c 0 f¨ ur Zeile 6–7

c 1 f¨ ur Zeile 6–8 c 2 m f¨ ur Merge-Schritt

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

A8. Laufzeitanalyse: Top-Down-Mergesort Beispiel: Top-Down-Mergesort

Top-Down-Mergesort: Analyse I

Laufzeit sort aux

I T (m) = c 1 + 2T (m/2) + c 2 m f¨ ur m = 2 k , k ∈ N 0

I T (1) = c 0

I Rekursive Gleichung

I Wir suchen obere Schranke, die nur von m abh¨ angt.

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 17. M¨arz 2021 8 / 13

(3)

A8. Laufzeitanalyse: Top-Down-Mergesort Beispiel: Top-Down-Mergesort

Top-Down-Mergesort: Analyse II

Betrachte m = 2 k mit k ∈ N >0

T (m) = c 1 + 2T (m/2) + c 2 m

= c 1 + 2(c 1 + 2T (m/4) + c 2 (m/2)) + c 2 m

= c 1 (1 + 2) + 2mc 2 + 4T (m/4)

= c 1 (1 + 2) + 2mc 2 + 4(c 1 + 2T (m/8) + c 2 (m/4))

= c 1 (1 + 2 + 4) + 3mc 2 + 8T (m/8)

= . . .

= c 1 X k−1 i=0 2 i

+ kmc 2 + 2 k c 0

= c 1 X k−1 i=0 2 i

+ c 2 m log 2 m + mc 0 (k = log 2 m, 2 k = m)

≤ c 1 k2 k−1 + c 2 m log 2 m + mc 0

≤ c 1 m log 2 m + c 2 m log 2 m + mc 0

≤ (c 0 + c 1 + c 2 )m log 2 m (log 2 m = k ≥ 1)

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 17. M¨arz 2021 9 / 13

A8. Laufzeitanalyse: Top-Down-Mergesort Beispiel: Top-Down-Mergesort

Top-Down-Mergesort: Analyse III

m keine Zweierpotenz? 2 k−1 < m < 2 k T (m) = c 1 + T (bm/2c) + T (dm/2e) + c 2 m

≤ c 1 + 2T (2 k /2) + c 2 m

≤ c 2 k log 2 2 k f¨ ur irgendein c

< 2cm log 2 (2m) (2 k < 2m, da m > 2 k−1 )

= 2cm(log 2 2 + log 2 m)

= 2cm(1 + log 2 m) ≤ 4cm log 2 m (1 ≤ log 2 m f¨ ur m ≥ 2) Obere Schranke c 0 m log 2 m gilt allgemein (f¨ ur irgendein c 0 )

Untere Schranke?

T (m) = c 1 P k −1

i =0 2 i + c 2 m log 2 m + mc 0 ≥ c 2 m log 2 m Untere Schranke cm log 2 m (f¨ ur irgendein c )

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 17. M¨arz 2021 10 / 13

A8. Laufzeitanalyse: Top-Down-Mergesort Beispiel: Top-Down-Mergesort

Top-Down-Mergesort: Analyse IV

sort?

I Aufruf von sort aux mit m = n = L¨ ange der Eingabe I Anlegen/Kopieren von Array geht in linearer Zeit

→ kann durch Anpassung der Konstanten abgedeckt werden.

Theorem

Top-Down-Mergesort hat leicht ¨ uberlineare Laufzeit, d.h.

es gibt Konstanten c , c 0 , n 0 > 0, so dass f¨ ur alle n ≥ n 0 , cn log 2 n ≤ T (n) ≤ c 0 n log 2 n.

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 17. M¨arz 2021 11 / 13

A8. Laufzeitanalyse: Top-Down-Mergesort Zusammenfassung

A8.2 Zusammenfassung

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 17. M¨arz 2021 12 / 13

(4)

A8. Laufzeitanalyse: Top-Down-Mergesort Zusammenfassung

Zusammenfassung

I Mergesort hat auch in der Top-Down-Variante leicht ¨ uberlineare Laufzeit.

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

Referenzen

ÄHNLICHE DOKUMENTE

Wir w¨ urden schon beim ersten Durchgang kein Ende finden und jedes Element w¨ urde nur genau einmal gez¨ ahlt werden. Wir z¨ ahlen also nur endliche Mengen, die sich aber nach

Analysis I f¨ ur M, LaG, Ph, L¨ osungsvorschlag 4 F¨ ur β &gt; 1 divergiert die Reihe nach dem Wurzelkriterum (das Argument ist ganz analog). ¨ Ubung, H3) und ist damit keine

(In der Analysis IV werden wir viel schw¨ achere Voraussetzungen hierf¨ ur an die Funktionenfolge stellen k¨ onnen und trotzdem die Vertauschbarkeit von Integral und Limes

Raphael Schulz A TECHNISCHE UNIVERSIT¨ DARMSTADT 21.11.2008 AT. Analysis I f¨ ur M,

Raphael Schulz A TECHNISCHE UNIVERSIT¨ DARMSTADT 05.12.2008 AT. Analysis I f¨ ur M,

Diese Aufgabe behandelt einen Spezialfall der sogenannten H¨ older-Ungleichung. Berechne das Integral

In den verbleibenden Intervallen wurde der Graph stetig linear verbunden (linear interpoliert)... Berechne

¨ Ubung Analysis I f¨ ur M, LaG und Ph an, weil ihr Graph aus zwei nichtverbundenen Teilst¨ ucken besteht und sich nicht zeichnen l¨ asst, ohne den Stift vom Papier zu nehmen..