• Keine Ergebnisse gefunden

Stand der Dinge

N/A
N/A
Protected

Academic year: 2022

Aktie "Stand der Dinge"

Copied!
70
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Datenstrukturen und Algorithmen

Christian Sohler

FG Algorithmen & Komplexität

(2)

Stand der Dinge

Teile & Herrsche:

• Teile Eingabe in mehrere Teile auf

• Löse das Problem rekursiv auf den Teilen

• Füge die Teillösungen zu einer Gesamtlösung zusammen

Eigenschaften:

• Vielseitig anwendbbar: MergeSort, binäre Suche, Integer Multiplikation

• Analyse: Rekursionsbäume, Substitutionsmethode, Iterationsmethode

(3)

Stand der Dinge

Laufzeiten der Form:

T(n) = a ⋅ T(n/b) + f(n)

(4)

Stand der Dinge

Laufzeiten der Form:

T(n) = a ⋅ T(n/b) + f(n)

Anzahl

Unterprobleme

(5)

Stand der Dinge

Laufzeiten der Form:

T(n) = a ⋅ T(n/b) + f(n)

Anzahl

Unterprobleme

Größe der Unterprobleme

(6)

Stand der Dinge

Laufzeiten der Form:

T(n) = a ⋅ T(n/b) + f(n)

Anzahl

Unterprobleme

Größe der Unterprobleme

(bestimmt Höhe des Rekursionsbaums)

(7)

Stand der Dinge

Laufzeiten der Form:

T(n) = a ⋅ T(n/b) + f(n)

Anzahl

Unterprobleme

Aufwand für Aufteilen und Zusammenfügen Größe der Unterprobleme

(bestimmt Höhe des Rekursionsbaums)

(8)

Stand der Dinge

Laufzeiten der Form:

T(n) = a ⋅ T(n/b) + f(n)

Anzahl

Unterprobleme

Aufwand für Aufteilen und Zusammenfügen Größe der Unterprobleme

(bestimmt Höhe des Rekursionsbaums) Welche unterschiedlichen Fälle gibt es?

(9)

Master Theorem

Laufzeit:

a ⋅ T(n/b) + f(n) , n> 1 Θ(1) , n= 1 T(n)=

n

n/b n/b n/b

f(n)

(10)

Master Theorem

Laufzeit:

a ⋅ T(n/b) + f(n) , n> 1 Θ(1) , n= 1 T(n)=

n

n/b n/b n/b

f(n)

a-mal

(11)

Master Theorem

Laufzeit:

a ⋅ T(n/b) + f(n) , n> 1 Θ(1) , n= 1 T(n)=

n

n/b n/b n/b

f(n) a⋅f(n/b)

a-mal

(12)

Master Theorem

Laufzeit:

a ⋅ T(n/b) + f(n) , n> 1 Θ(1) , n= 1 T(n)=

n

n/b n/b n/b

f(n) a⋅f(n/b)

1 1 1 1 1 1 a ⋅Θ(1)h

(13)

Master Theorem

Laufzeit:

a ⋅ T(n/b) + f(n) , n> 1 Θ(1) , n= 1

Höhe des Baums: h = log n T(n)=

n

n/b n/b n/b

f(n) a⋅f(n/b)

1 1 1 1 1 1 a ⋅Θ(1)h

h

(14)

Master Theorem

Analyse:

Setze a ⋅ f(n/b) = c ⋅ f(n)

Höhe des Baums: h = log n

n

n/b n/b n/b

f(n) a⋅f(n/b)

1 1 1 1 1 1 a ⋅Θ(1)h

h

(15)

Analyse:

Setze a ⋅ f(n/b) = c ⋅ f(n)

Höhe des Baums: h = log n

Master Theorem

n

n/b n/b n/b

f(n) a⋅f(n/b)

1 1 1 1 1 1 a ⋅Θ(1)h

Fallunterscheidung nach Konstante c

h

(16)

Analyse:

Setze a ⋅ f(n/b) = c ⋅ f(n)

Höhe des Baums: h = log n

Master Theorem

n

n/b n/b n/b

f(n) a⋅f(n/b)

1 1 1 1 1 1 a ⋅Θ(1)h

Fall 1:

c<1

Θ(f(n))

h

(17)

Analyse:

Setze a ⋅ f(n/b) = c ⋅ f(n)

Höhe des Baums: h = log n

Master Theorem

n

n/b n/b n/b

f(n) a⋅f(n/b)

1 1 1 1 1 1 a ⋅Θ(1)h

Fall 1:

c=1

Θ(f(n)⋅log n)

h

(18)

Analyse:

Setze a ⋅ f(n/b) = c ⋅ f(n)

Höhe des Baums: h = log n

Master Theorem

n

n/b n/b n/b

f(n) a⋅f(n/b)

1 1 1 1 1 1 a ⋅Θ(1)h

Fall 1:

c>1

Θ(alog nb )

h

(19)

Analyse:

Setze a ⋅ f(n/b) = c ⋅ f(n)

Höhe des Baums: h = log n

Master Theorem

n

n/b n/b n/b

f(n) a⋅f(n/b)

1 1 1 1 1 1 a ⋅Θ(1)h

Fall 1:

c>1

Θ(nlog ab )

h

(20)

Matrix Multiplikation

3 7 5 4 2 1 1 0 0 3 2 4 0 0 1 3 10 2 1 0 3 1 1 0 1 0 1 0 2 3 2 2

=

(21)

Matrix Multiplikation

3 7 5 4 2 1 1 0 0 3 2 4 0 0 1 3

10 2 1 0 3 1 1 0 1 0 1 0 2 3 2 2

Zeile × Spalte:

3 ⋅ 2 + 7 ⋅ 0 + 5 ⋅ 3 + 4 ⋅ 2 = 29

=

(22)

Matrix Multiplikation

3 7 5 4 2 1 1 0 29 0 3 2 4 0 0 1 3

10 2 1 0 3 1 1 0 1 0 1 0 2 3 2 2

Zeile × Spalte:

3 ⋅ 2 + 7 ⋅ 0 + 5 ⋅ 3 + 4 ⋅ 2 = 29

=

(23)

Matrix Multiplikation

3 7 5 4 2 1 1 0 29 20 0 3 2 4 0 0 1 3

10 2 1 0 3 1 1 0 1 0 1 0 2 3 2 2

Zeile × Spalte:

3 ⋅ 1 + 7 ⋅ 0 + 5 ⋅ 1 + 4 ⋅ 3 = 20

=

(24)

Matrix Multiplikation

3 7 5 4 2 1 1 0 29 20 23 0 3 2 4 0 0 1 3

10 2 1 0 3 1 1 0 1 0 1 0 2 3 2 2

=

(25)

Matrix Multiplikation

3 7 5 4 2 1 1 0 29 20 23 29 0 3 2 4 0 0 1 3

10 2 1 0 3 1 1 0 1 0 1 0 2 3 2 2

=

(26)

Matrix Multiplikation

=

3 7 5 4 2 1 1 0 29 20 23 29 0 3 2 4 0 0 1 3 14

10 2 1 0 3 1 1 0 1 0 1 0 2 3 2 2

(27)

Matrix Multiplikation

=

3 7 5 4 2 1 1 0 29 20 23 29 0 3 2 4 0 0 1 3 14 14

10 2 1 0 3 1 1 0 1 0 1 0 2 3 2 2

(28)

Matrix Multiplikation

3 7 5 4 2 1 1 0 29 20 23 29 0 3 2 4 0 0 1 3 14 14 … 10 2 1 0 3 1 1 0 …

1 0 1 0 2 3 2 2 …

=

(29)

Matrix Multiplikation

Teile & Herrsche – noch ein Beispiel:

• Problem: Berechne das Produkt zweier n×n Matrizen

• Eingabe: Matrizen X,Y

• Ausgabe: Matrix Z = X⋅Y

⎟⎟

⎟⎟

⎜⎜

⎜⎜

=

4,4 4,3

4,2 4,1

3,4 3,3

3,2 3,1

2,4 2,3

2,2 2,1

1,4 1,3

1,2 1,1

x x

x x

x x

x x

x x

x x

x x

x x

X

⎟⎟

⎟⎟

⎜⎜

⎜⎜

=

4,4 4,3

4,2 4,1

3,4 3,3

3,2 3,1

2,4 2,3

2,2 2,1

1,4 1,3

1,2 1,1

y y

y y

y y

y y

y y

y y

y y

y y

, Y

(30)

Matrix Multiplikation

MatrixMultiplikation(Array X, Y, n) 1. new array Z[1,..,n][1,..,n]

2. for i←1 to n do

3. for j ← 1 to n do 4. Z[i][j] ← 0

5. for k ←1 to n do

6. Z[i][j] ← Z[i][j] + X[i][k] ⋅ Y[k][j]

7. return Z

(31)

Matrix Multiplikation

MatrixMultiplikation(Array X, Y, n) 1. new array Z[1,..,n][1,..,n]

2. for i←1 to n do

3. for j ← 1 to n do 4. Z[i][j] ← 0

5. for k ←1 to n do

6. Z[i][j] ← Z[i][j] + X[i][k] ⋅ Y[k][j]

7. return Z

(32)

Matrix Multiplikation

MatrixMultiplikation(Array X, Y, n) 1. new array Z[1,..,n][1,..,n]

2. for i←1 to n do

3. for j ← 1 to n do 4. Z[i][j] ← 0

5. for k ←1 to n do

6. Z[i][j] ← Z[i][j] + X[i][k] ⋅ Y[k][j]

7. return Z

(33)

Matrix Multiplikation

MatrixMultiplikation(Array X, Y, n) 1. new array Z[1,..,n][1,..,n]

2. for i←1 to n do

3. for j ← 1 to n do 4. Z[i][j] ← 0

5. for k ←1 to n do

6. Z[i][j] ← Z[i][j] + X[i][k] ⋅ Y[k][j]

7. return Z

(34)

Matrix Multiplikation

MatrixMultiplikation(Array X, Y, n) 1. new array Z[1,..,n][1,..,n]

2. for i←1 to n do

3. for j ← 1 to n do 4. Z[i][j] ← 0

5. for k ←1 to n do

6. Z[i][j] ← Z[i][j] + X[i][k] ⋅ Y[k][j]

7. return Z

(35)

Matrix Multiplikation

MatrixMultiplikation(Array X, Y, n) 1. new array Z[1,..,n][1,..,n]

2. for i←1 to n do

3. for j ← 1 to n do 4. Z[i][j] ← 0

5. for k ←1 to n do

6. Z[i][j] ← Z[i][j] + X[i][k] ⋅ Y[k][j]

7. return Z

(36)

Matrix Multiplikation

MatrixMultiplikation(Array X, Y, n) 1. new array Z[1,..,n][1,..,n]

2. for i←1 to n do

3. for j ← 1 to n do 4. Z[i][j] ← 0

5. for k ←1 to n do

6. Z[i][j] ← Z[i][j] + X[i][k] ⋅ Y[k][j]

7. return Z

(37)

Matrix Multiplikation

MatrixMultiplikation(Array X, Y, n) 1. new array Z[1,..,n][1,..,n]

2. for i←1 to n do

3. for j ← 1 to n do 4. Z[i][j] ← 0

5. for k ←1 to n do

6. Z[i][j] ← Z[i][j] + X[i][k] ⋅ Y[k][j]

7. return Z

(38)

Matrix Multiplikation

MatrixMultiplikation(Array X, Y, n) Laufzeit:

1. new array Z[1,..,n][1,..,n] Θ(n²) 2. for i←1 to n do

3. for j ← 1 to n do 4. Z[i][j] ← 0

5. for k ←1 to n do

6. Z[i][j] ← Z[i][j] + X[i][k] ⋅ Y[k][j]

7. return Z

(39)

Matrix Multiplikation

MatrixMultiplikation(Array X, Y, n) Laufzeit:

1. new array Z[1,..,n][1,..,n] Θ(n²)

2. for i←1 to n do Θ(n)

3. for j ← 1 to n do 4. Z[i][j] ← 0

5. for k ←1 to n do

6. Z[i][j] ← Z[i][j] + X[i][k] ⋅ Y[k][j]

7. return Z

(40)

Matrix Multiplikation

MatrixMultiplikation(Array X, Y, n) Laufzeit:

1. new array Z[1,..,n][1,..,n] Θ(n²)

2. for i←1 to n do Θ(n)

3. for j ← 1 to n do Θ(n²) 4. Z[i][j] ← 0

5. for k ←1 to n do

6. Z[i][j] ← Z[i][j] + X[i][k] ⋅ Y[k][j]

7. return Z

(41)

Matrix Multiplikation

MatrixMultiplikation(Array X, Y, n) Laufzeit:

1. new array Z[1,..,n][1,..,n] Θ(n²)

2. for i←1 to n do Θ(n)

3. for j ← 1 to n do Θ(n²)

4. Z[i][j] ← 0 Θ(n²)

5. for k ←1 to n do

6. Z[i][j] ← Z[i][j] + X[i][k] ⋅ Y[k][j]

7. return Z

(42)

Matrix Multiplikation

MatrixMultiplikation(Array X, Y, n) Laufzeit:

1. new array Z[1,..,n][1,..,n] Θ(n²)

2. for i←1 to n do Θ(n)

3. for j ← 1 to n do Θ(n²)

4. Z[i][j] ← 0 Θ(n²)

5. for k ←1 to n do Θ(n³) 6. Z[i][j] ← Z[i][j] + X[i][k] ⋅ Y[k][j]

7. return Z

(43)

Matrix Multiplikation

MatrixMultiplikation(Array X, Y, n) Laufzeit:

1. new array Z[1,..,n][1,..,n] Θ(n²)

2. for i←1 to n do Θ(n)

3. for j ← 1 to n do Θ(n²)

4. Z[i][j] ← 0 Θ(n²)

5. for k ←1 to n do Θ(n³) 6. Z[i][j] ← Z[i][j] + X[i][k] ⋅ Y[k][j] Θ(n ) 7. return Z

3

(44)

Matrix Multiplikation

MatrixMultiplikation(Array X, Y, n) Laufzeit:

1. new array Z[1,..,n][1,..,n] Θ(n²)

2. for i←1 to n do Θ(n)

3. for j ← 1 to n do Θ(n²)

4. Z[i][j] ← 0 Θ(n²)

5. for k ←1 to n do Θ(n³) 6. Z[i][j] ← Z[i][j] + X[i][k] ⋅ Y[k][j] Θ(n ) 7. return Z Θ(1)

3

(45)

Matrix Multiplikation

MatrixMultiplikation(Array X, Y, n) Laufzeit:

1. new array Z[1,..,n][1,..,n] Θ(n²)

2. for i←1 to n do Θ(n)

3. for j ← 1 to n do Θ(n²)

4. Z[i][j] ← 0 Θ(n²)

5. for k ←1 to n do Θ(n³) 6. Z[i][j] ← Z[i][j] + X[i][k] ⋅ Y[k][j] Θ(n ) 7. return Z Θ(1)

Θ(n³)

3

(46)

Matrix Multiplikation

Teile und Herrsche:

Aufwand:

• 8 Multiplikationen von n/2×n/2 Matrizen

• 4 Additionen von n/2×n/2 Matrizen

⎟⎟ ⎠

⎜⎜ ⎞

+ +

+

= +

⎟⎟ ⎠

⎜⎜ ⎞

× ⎛

⎟⎟ ⎠

⎜⎜ ⎞

DH CF

DG CE

BH AF

BG AE

H G

F E

D C

B

A

(47)

Matrix Multiplikation

Teile und Herrsche:

Aufwand:

• 8 Multiplikationen von n/2×n/2 Matrizen

• 4 Additionen von n/2×n/2 Matrizen

Laufzeit:

• T(n) = 8⋅T(n/2) + Θ(n²)

⎟⎟ ⎠

⎜⎜ ⎞

+ +

+

= +

⎟⎟ ⎠

⎜⎜ ⎞

× ⎛

⎟⎟ ⎠

⎜⎜ ⎞

DH CF

DG CE

BH AF

BG AE

H G

F E

D C

B

A

(48)

Matrix Multiplikation

Laufzeit:

• T(n) = 8 ⋅ T(n/2) + k⋅n²

Master Theorem:

• f(n) = k ⋅ n²

• 8 ⋅ f(n/2)

a b f(n)

(49)

Matrix Multiplikation

Laufzeit:

• T(n) = 8 ⋅ T(n/2) + k⋅n²

Master Theorem:

• f(n) = k ⋅ n²

• 8 ⋅ f(n/2) = 8 ⋅ k²n²/4

a b f(n)

(50)

Matrix Multiplikation

Laufzeit:

• T(n) = 8 ⋅ T(n/2) + k⋅n²

Master Theorem:

• f(n) = k ⋅ n²

• 8 ⋅ f(n/2) = 8 ⋅ k²n²/4 = 2 ⋅ k²n²

a b f(n)

(51)

Matrix Multiplikation

Laufzeit:

• T(n) = 8 ⋅ T(n/2) + k⋅n²

Master Theorem:

• f(n) = k ⋅ n²

• 8 ⋅ f(n/2) = 8 ⋅ k²n²/4 = 2 ⋅ k²n² = 2 ⋅ f(n)

a b f(n)

(52)

Matrix Multiplikation

Laufzeit:

• T(n) = 8 ⋅ T(n/2) + k⋅n²

Master Theorem:

• f(n) = k ⋅ n²

• 8 ⋅ f(n/2) = 8 ⋅ k²n²/4 = 2 ⋅ k²n² = 2 ⋅ f(n)

a b f(n)

(53)

Matrix Multiplikation

Laufzeit:

• T(n) = 8 ⋅ T(n/2) + k⋅n²

Master Theorem:

• f(n) = k ⋅ n²

• 8 ⋅ f(n/2) = 8 ⋅ k²n²/4 = 2 ⋅ k²n² = 2 ⋅ f(n) c>1

a b f(n)

(54)

Matrix Multiplikation

Laufzeit:

• T(n) = 8 ⋅ T(n/2) + k⋅n²

Master Theorem:

• f(n) = k ⋅ n²

• 8 ⋅ f(n/2) = 8 ⋅ k²n²/4 = 2 ⋅ k²n² = 2 ⋅ f(n)

• Fall 3: Laufzeit Θ(nlog ab )

a b f(n)

c>1

(55)

Matrix Multiplikation

Laufzeit:

• T(n) = 8 ⋅ T(n/2) + k⋅n²

Master Theorem:

• f(n) = k ⋅ n²

• 8 ⋅ f(n/2) = 8 ⋅ k²n²/4 = 2 ⋅ k²n² = 2 ⋅ f(n)

• Fall 3: Laufzeit Θ(nlog ab ) = Θ(n³)

a b f(n)

c>1

(56)

Matrix Multiplikation

Laufzeit:

• T(n) = 8 ⋅ T(n/2) + k⋅n²

Master Theorem:

• f(n) = k ⋅ n²

• 8 ⋅ f(n/2) = 8 ⋅ k²n²/4 = 2 ⋅ k²n² = 2 ⋅ f(n)

• Fall 3: Laufzeit Θ(n ) = Θ(n³)

• Formaler Beweis durch Induktion!!

log a b

a b f(n)

c>1

(57)

Matrix Multiplikation

Laufzeit:

• T(n) = 8 ⋅ T(n/2) + k⋅n²

Master Theorem:

• f(n) = k ⋅ n²

• 8 ⋅ f(n/2) = 8 ⋅ k²n²/4 = 2 ⋅ k²n² = 2 ⋅ f(n)

• Fall 3: Laufzeit Θ(n ) = Θ(n³)

• Formaler Beweis durch Induktion!!

• Nicht besser als einfacher Algorithmus

log a b

a b f(n)

c>1

(58)

Matrix Multiplikation

Teile und Herrsche:

Trick (wie bei Integer Multiplikation):

P = A⋅(F-H) P = (A+D)⋅(E+H) P = (A+B)⋅H P = (B-D)⋅(G+H) P = (C+D)⋅E P = (A-C)⋅(E+F) P = D⋅(G-E)

⎟⎟ ⎠

⎜⎜ ⎞

+ +

+

= +

⎟⎟ ⎠

⎜⎜ ⎞

× ⎛

⎟⎟ ⎠

⎜⎜ ⎞

DH CF

DG CE

BH AF

BG AE

H G

F E

D C

B A

1 2 3 4

5 6 7

(59)

Matrix Multiplikation

Teile und Herrsche:

Trick (wie bei Integer Multiplikation):

P = A⋅(F-H) P = (A+D)⋅(E+H) AE+BG = P + P - P + P P = (A+B)⋅H P = (B-D)⋅(G+H) AF+BH = P + P

P = (C+D)⋅E P = (A-C)⋅(E+F) CE+DG = P + P

P = D⋅(G-E) CF+DH = P + P - P - P

⎟⎟ ⎠

⎜⎜ ⎞

+ +

+

= +

⎟⎟ ⎠

⎜⎜ ⎞

× ⎛

⎟⎟ ⎠

⎜⎜ ⎞

DH CF

DG CE

BH AF

BG AE

H G

F E

D C

B A

1 2 3 4

5 6 7

5 4 2 6

1 2

3 4

5 1 3 7

(60)

60

Matrix Multiplikation

Teile und Herrsche:

Trick (wie bei Integer Multiplikation):

P = A⋅(F-H) P = (A+D)⋅(E+H) AE+BG = P + P - P + P P = (A+B)⋅H P = (B-D)⋅(G+H) AF+BH = P + P

P = (C+D)⋅E P = (A-C)⋅(E+F) CE+DG = P + P

P = D⋅(G-E) CF+DH = P + P - P - P

⎟⎟ ⎠

⎜⎜ ⎞

+ +

+

= +

⎟⎟ ⎠

⎜⎜ ⎞

× ⎛

⎟⎟ ⎠

⎜⎜ ⎞

DH CF

DG CE

BH AF

BG AE

H G

F E

D C

B A

1 2 3 4

5 6 7

5 4 2 6

1 2

3 4

5 1 3 7

7 Multiplikationen!!!

(61)

Matrix Multiplikation

Laufzeit:

• T(n) = 7 ⋅ T(n/2) + k⋅n²

Master Theorem:

• f(n) = k ⋅ n²

a b f(n)

(62)

Matrix Multiplikation

Laufzeit:

• T(n) = 7 ⋅ T(n/2) + k⋅n²

Master Theorem:

• f(n) = k ⋅ n²

• 7 ⋅ f(n/2) = 7 ⋅ k n²/4

a b f(n)

(63)

Matrix Multiplikation

Laufzeit:

• T(n) = 7 ⋅ T(n/2) + k⋅n²

Master Theorem:

• f(n) = k ⋅ n²

• 7 ⋅ f(n/2) = 7 ⋅ k n²/4 = 7/4 ⋅ k n²

a b f(n)

(64)

Matrix Multiplikation

Laufzeit:

• T(n) = 7 ⋅ T(n/2) + k⋅n²

Master Theorem:

• f(n) = k ⋅ n²

• 7 ⋅ f(n/2) = 7 ⋅ k n²/4 = 7/4 ⋅ k n² = 7/4 ⋅ f(n)

a b f(n)

(65)

Matrix Multiplikation

Laufzeit:

• T(n) = 7 ⋅ T(n/2) + k⋅n²

Master Theorem:

• f(n) = k ⋅ n²

• 7 ⋅ f(n/2) = 7 ⋅ k n²/4 = 7/4 ⋅ k n² = 7/4 ⋅ f(n)

a b f(n)

(66)

Matrix Multiplikation

Laufzeit:

• T(n) = 7 ⋅ T(n/2) + k⋅n²

Master Theorem:

• f(n) = k ⋅ n²

• 7 ⋅ f(n/2) = 7 ⋅ k n²/4 = 7/4 ⋅ k n² = 7/4 ⋅ f(n)

a b f(n)

Wieder Fall c>1

(67)

Matrix Multiplikation

Laufzeit:

• T(n) = 7 ⋅ T(n/2) + k⋅n²

Master Theorem:

• f(n) = k ⋅ n²

• 7 ⋅ f(n/2) = 7 ⋅ k n²/4 = 7/4 ⋅ k n² = 7/4 ⋅ f(n)

• Fall 3: Laufzeit Θ(n )

a b f(n)

Wieder Fall c>1

log a b

(68)

Matrix Multiplikation

Laufzeit:

• T(n) = 7 ⋅ T(n/2) + k⋅n²

Master Theorem:

• f(n) = k ⋅ n²

• 7 ⋅ f(n/2) = 7 ⋅ k n²/4 = 7/4 ⋅ k n² = 7/4 ⋅ f(n)

• Fall 3: Laufzeit Θ(n )=Θ(n )

a b f(n)

Wieder Fall c>1

log a

b log 72

(69)

Matrix Multiplikation

Laufzeit:

• T(n) = 7 ⋅ T(n/2) + k⋅n²

Master Theorem:

• f(n) = k ⋅ n²

• 7 ⋅ f(n/2) = 7 ⋅ k n²/4 = 7/4 ⋅ k n² = 7/4 ⋅ f(n)

• Fall 3: Laufzeit Θ(n )=Θ(n ) = Θ(n )

• Verbesserter Algorithmus!

(Erheblicher Unterschied für große Eingaben)

a b f(n)

Wieder Fall c>1

log a

b log 72 2,81

(70)

Matrix Multiplikation

Satz 6

Das Produkt zweier n×n Matrizen kann in Θ(n ) Laufzeit berechnet werden.

2,81

Referenzen

ÄHNLICHE DOKUMENTE

where Bücher.ISBN = Buch_Stichwort.ISBN select Bücher.ISBN, Titel, Stichwort (richtig) from Bücher, Buch_Stichwort. where Bücher.ISBN

Vorl V_Bez SWS Semester Studiengang _DB _zwei _erstes Informatik Vorl_Voraus V_Bez Voraussetzung.

Crossectional study on the prevalence and economic significance of hydatidosis in slaughtered ruminants at Debrezeit ELFORA export abattoir Oromia region, Eastern Showa

Ubungen zur Linearen Algebra II ¨ Bergische Universit¨ at Wuppertal. Blatt

[r]

However, each time you apply it, do not forget to check that the hypotheses of the rule are satisfied (in relation to this see the bonus question on the back).. please

[r]

Abgabe bis Do, 27.11., 13 Uhr Aufgabe 1 zur Bearbeitung in der ¨ Ubung Aufgaben 2-4 zur selbst¨ andigen Bearbeitung.