• Keine Ergebnisse gefunden

2.7 Bucket-Sort Bucket-Sort ist ein nicht-vergleichsbasiertes Sortierverfahren. Hier k¨onnen z.B. n Schl¨ussel aus {0, 1, . . . , B − 1}

N/A
N/A
Protected

Academic year: 2021

Aktie "2.7 Bucket-Sort Bucket-Sort ist ein nicht-vergleichsbasiertes Sortierverfahren. Hier k¨onnen z.B. n Schl¨ussel aus {0, 1, . . . , B − 1}"

Copied!
30
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

2.7 Bucket-Sort

Bucket-Sortist ein nicht-vergleichsbasiertesSortierverfahren. Hier k¨onnen z.B.n Schl¨ussel aus

{0,1, . . . , B−1}d

in ZeitO(d(n+B))sortiert werden, indem sie zuerst gem¨aß dem letzten Zeichen aufB Beh¨alter verteilt werden, die so entstandene Teilsortierung dannstabil gem¨aß dem vorletzten Zeichen aufB Beh¨alter verteilt wird, usw. bis zur ersten Position. Das letzte Zeichen eines jeden Schl¨ussels wird also als das niedrigwertigste aufgefasst.

Bucket-Sort sortiert damitn Schl¨ussel aus {0,1, . . . , B−1}d in ZeitO(nd), also linear in der L¨ange der Eingabe (gemessen als Anzahl der Zeichen).

ADS-EI 2.7 Bucket-Sort 322/451

ľErnst W. Mayr

(2)

3. Suchverfahren

Es ist eine Menge von Datens¨atzen gegeben, wobei jeder

DatensatzDi durch einen eindeutigen Schl¨usselki gekennzeichnet ist. Der Zugriff zu den Datens¨atzen erfolgt per Zeiger ¨uber die zugeordneten Schl¨ussel, so dass wir uns nur mit der Verwaltung der Schl¨ussel besch¨aftigen.

I. A. ist die Menge der Datens¨atze dynamisch, d.h. es k¨onnen Datens¨atze neu hinzukommen oder gel¨oscht werden, oder Datens¨atze bzw. Schl¨ussel k¨onnen ge¨andert werden.

ADS-EI 3 Suchverfahren 323/451

ľErnst W. Mayr

(3)

Definition 148

EinW¨orterbuch(engl. dictionary) ist eine Datenstruktur, die folgende Operationen auf einer Menge von Schl¨usseln effizient unterst¨utzt:

1 is member(k): teste, ob der Schl¨ussel kin der Schl¨usselmenge enthalten ist;

2 insert(k): f¨uge den Schl¨ussel kzur Schl¨usselmenge hinzu, falls er noch nicht vorhanden ist;

3 delete(k): entferne den Schl¨ussel kaus der Schl¨usselmenge, falls er dort vorhanden ist.

ADS-EI 3 Suchverfahren 324/451

ľErnst W. Mayr

(4)

Es gibt zwei grunds¨atzlich verschiedene Ans¨atze, um W¨orterb¨ucher zu implementieren:

Suchb¨aume

Hashing (Streuspeicherverfahren)

Wir betrachten zuerst Suchb¨aume. Wir nehmen an, dass die Schl¨ussel aus einer total geordneten Menge, dem UniversumU stammen.

Sind die Schl¨ussel nur in den Bl¨attern des Suchbaums gespeichert, sprechen wir von einemexternen Suchbaum, ansonsten von einem internen Suchbaum(wo dann der Einfachheit halber Schl¨ussel nur in den internen Knoten gespeichert werden).

ADS-EI 3 Suchverfahren 325/451

ľErnst W. Mayr

(5)

3.1 Bin¨are/nat¨urliche Suchb¨aume

In bin¨aren Suchb¨aumen gilt f¨ur alle Knotenx

key(x) ist gr¨oßer als der gr¨oßte Schl¨ussel imlinken Unterbaum von x;

key(x) ist kleiner als der kleinste Schl¨ussel imrechten Unterbaum von x.

ADS-EI 3.1 Bin¨are/nat¨urliche Suchb¨aume 326/451

ľErnst W. Mayr

(6)

Die W¨orterbuch-Operationen werden wie folgt realisiert:

1 is member(k): beginnend an der Wurzel des Suchbaums, wird der gesuchte Schl¨ussel kmit dem am Knoten gespeicherten Schl¨usselk0 verglichen. Fallsk < k0 (k > k0), wird im linken (rechten)

Unterbaum fortgefahren (falls der Unterbaum leer ist, ist der Schl¨ussel nicht vorhanden), ansonsten ist der Schl¨ussel gefunden.

2 insert(k): es wird zuerst gepr¨uft, obkbereits im Suchbaum gespeichert ist; falls ja, ist die Operation beendet, falls nein, liefert die Suche die Position (den leeren Unterbaum), wokhinzugef¨ugt wird.

3 delete(k): es wird zuerst gepr¨uft, obkim Suchbaum gespeichert ist;

falls nein, ist die Operation beendet, falls ja, seixder Knoten, in demk gespeichert ist, und es seix0 der linksteKnoten im rechten Unterbaum vonx(x0 ist nicht unbedingt einBlatt!); dann wird key(x0)im Knotenxgespeichert undx0 durch seinen rechten Unterbaum ersetzt (falls vorhanden) bzw. gel¨oscht. Spezialf¨alle, wie z.B., dassx0 nicht existiert, sind kanonisch zu behandeln.

ADS-EI 3.1 Bin¨are/nat¨urliche Suchb¨aume 327/451

ľErnst W. Mayr

(7)

Beispiel 149

4 7

8 10

12 14

17 13 Der Schl¨ussel 13 wird hinzugef¨ugt.

ADS-EI 3.1 Bin¨are/nat¨urliche Suchb¨aume 328/451

ľErnst W. Mayr

(8)

Beispiel

Der Schl¨ussel 10 (also die Wurzel) wird gel¨oscht:

4 8 12 17

7

10

14

13

ADS-EI 329/451

ľErnst W. Mayr

(9)

Beispiel

Der Schl¨ussel 10 (also die Wurzel) wird gel¨oscht:

4 8 17

7

12

14

13

ADS-EI 3.1 Bin¨are/nat¨urliche Suchb¨aume 329/451

ľErnst W. Mayr

(10)

Satz 150

In einem nat¨urlichen Suchbaum der H¨ohe hben¨otigen die W¨orterbuch-Operationen jeweils Zeit O(h).

Beweis:

Folgt aus der obigen Konstruktion!

Bemerkung:

Das Problem bei nat¨urlichen Suchb¨aumen ist, dass sie sehr entartet sein k¨onnen, z.B. bei nSchl¨usseln eine Tiefe vonn−1 haben. Dies ergibt sich z.B., wenn die Schl¨ussel in aufsteigender Reihenfolge eingef¨ugt werden.

ADS-EI 3.1 Bin¨are/nat¨urliche Suchb¨aume 330/451

ľErnst W. Mayr

(11)

3.2 AVL-B¨aume

AVL-B¨aume sind interne bin¨are Suchb¨aume, bei denen f¨ur jeden Knoten gilt, dass sich die H¨ohe seiner beiden Unterb¨aume um h¨ochstens 1 unterscheidet. AVL-B¨aume sind nach ihren Erfindern G. Adelson-Velskii und Y. Landis (1962) benannt.

Satz 151

Ein AVL-Baum der H¨ohe h enth¨alt mindestens Fh+3−1 und h¨ochstens 2h+1−1 Knoten, wobeiFn dien-te Fibonacci-Zahl (F0 = 0, F1 = 1) und die H¨ohe die maximale Anzahl von Kanten auf einem Pfad von der Wurzel zu einem Blatt ist.

ADS-EI 3.2 AVL-B¨aume 331/451

ľErnst W. Mayr

(12)

Beweis:

Die obere Schranke ist klar, da ein Bin¨arbaum der H¨ohe h h¨ochstens

h

X

j=0

2j = 2h+1−1 Knoten enthalten kann.

ADS-EI 332/451

ľErnst W. Mayr

(13)

Beweis:

Induktionsanfang:

1 ein AVL-Baum der H¨oheh= 0 enth¨alt mindestens einen Knoten, 1≥F3−1 = 2−1 = 1

2 ein AVL-Baum der H¨oheh= 1 enth¨alt mindestens zwei Knoten, 2≥F4−1 = 3−1 = 2

ADS-EI 332/451

ľErnst W. Mayr

(14)

Beweis:

Induktionsschluss:Ein AVL-Baum der H¨oheh≥2 mit minimaler Knotenzahl hat als Unterb¨aume der Wurzel einen AVL-Baum der H¨oheh−1 und einen der H¨oheh−2, jeweils mit minimaler Knotenzahl. Sei

fh := 1 +minimale Knotenanzahl eines AVL-Baums der H¨oheh . Dann gilt demgem¨aß

f0 = 2 =F3

f1 = 3 =F4

fh−1 = 1 +fh−1−1 +fh−2−1, also fh =fh−1+fh−2 =Fh+3

ADS-EI 3.2 AVL-B¨aume 332/451

ľErnst W. Mayr

(15)

Korollar 152

Die H¨ohe eines AVL-Baums mitnKnoten ist Θ(logn).

Satz 153

In einem AVL-Baum mitnSchl¨usseln kann in ZeitO(logn) festgestellt werden, ob sich ein gegebener Schl¨ussel in der Schl¨usselmenge befindet oder nicht.

Beweis:

Klar!

ADS-EI 3.2 AVL-B¨aume 333/451

ľErnst W. Mayr

(16)

Beispiel 154 (Einf¨ ugen eines Knotens in AVL-Baum)

1 2

3 4

5 6

7

8 9

0

ADS-EI 3.2 AVL-B¨aume 334/451

ľErnst W. Mayr

(17)

Zur Wiederherstellung der H¨ohenbedingung benutzen wir so genannte Rotationen und Doppelrotationen.

Beispiel 155 (Rotation um (x, y))

66 KAPITEL 3. ALGORITHMEN UND DATENSTRUKTUREN

Beschäftigen wir uns also zunächst mitinsert:

1. Dieser Schritt erfolgt wie bisher.

2. In diesem Schritt wird die Höhenbedingung wieder hergestellt. Es dürfte klar sein, dass die Höhenbedingung nur auf dem Pfad von der Wurzel zu dem eingefügten Knoten verletzt sein kann. Wir verfolgen daher den Pfad von unten nach oben und stellen die Höhenbedingung wieder her. Dazu nutzen wir sogenannte Rotationen.

Die folgende Skizze zeigt eine Rotation umx-y:

C C C C C

C C C C C b

@

@

C C C C C b

@

@@

(−∞, x) (x, y)

(y,+∞)

A B

C y

x -

Rechtsrotation

Linksrotation

C C C C C

C C C C C

b

@

@

C C C C C

b

@

@@

(−∞, x)

(x, y) (y,+∞)

A

B C

x y

Wie man unschwer erkennen kann wird durch diese Operation die Höhe der Teil- bäume verändert. Sehen wir uns daher ein Beispiel an, wie man die Rotation zum Wiederherstellen der Höhenbedingung verwenden kann:

D D D D D D

C C C C C

b

@

@

C C C C C

b

H HH

H

A

B

C

(−∞, x)

(x, y)

(y,+∞)

x

y 6

?

h-1

6

?

h-1

6

?

h

- Rotation

C C C C C

C C C C C b

@

@

D D D D D D b

H HH

H

A B

C

(−∞, x) (x, y)

(y,+∞)

y x

6

?

h-1

6

?

h-1

6

?

h

Während im Knotenydie Höhenbedingung nach dem Einfügen noch gilt, ist sie in xverletzt. Nach der Rotation gilt die Höhenbedingung jedoch wieder. Die Höhe der Teilbäume vonyist gleich der Höhe der Teilbäume vonxvor dem Einfügen. Damit ist die Höhenbedingung jetzt überall im Baum erfüllt.

Mitunter muss man eine Doppelrotation vornehmen, um den Baum zu rebalancieren.

D D D D D D

C C C C C b

D D D D D D b

D D D D D D

b

PP PP 6

?

h

6

?

h

6

?

h-1

6

? A h

B

C D

(−∞, x)

(x, y)

(y, z) (z,+)

x y

z

D D D D D D

D D D D D D b

@

@

C C C C C

D D D D D D b

@

@ b

PPPP

6

?

h

6

?

h

6

?

h-1

6

?

h

A B

C

D

(−∞, x) (x, y) (y, z)

(z,+)

x

y z

ADS-EI 3.2 AVL-B¨aume 335/451

ľErnst W. Mayr

(18)

Beispiel 156 (Wiederherstellung der H¨ ohenbedingung)

66 KAPITEL 3. ALGORITHMEN UND DATENSTRUKTUREN

Beschäftigen wir uns also zunächst mitinsert:

1. Dieser Schritt erfolgt wie bisher.

2. In diesem Schritt wird die Höhenbedingung wieder hergestellt. Es dürfte klar sein, dass die Höhenbedingung nur auf dem Pfad von der Wurzel zu dem eingefügten Knoten verletzt sein kann. Wir verfolgen daher den Pfad von unten nach oben und stellen die Höhenbedingung wieder her. Dazu nutzen wir sogenannte Rotationen.

Die folgende Skizze zeigt eine Rotation umx-y:

C C C C C

C C C C C b

@

@

C C C C C b

@

@@

(−∞, x) (x, y)

(y,+∞)

A B

C y

x -

Rechtsrotation

Linksrotation

C C C C C

C C C C C

b

@

@

C C C C C

b

@

@@

(−∞, x)

(x, y) (y,+∞)

A

B C

x y

Wie man unschwer erkennen kann wird durch diese Operation die Höhe der Teil- bäume verändert. Sehen wir uns daher ein Beispiel an, wie man die Rotation zum Wiederherstellen der Höhenbedingung verwenden kann:

D D D D D D

C C C C C

b

@

@

C C C C C

b

H H

HH

A

B

C

(−∞, x)

(x, y)

(y,+)

x

y 6

?

h-1

6

?

h-1

6

?

h

- Rotation

C C C C C

C C C C C b

@

@

D D D D D D b

H H

HH

A B

C

(−∞, x) (x, y)

(y,+)

y x

6

?

h-1

6

?

h-1

6

?

h

Während im Knotenydie Höhenbedingung nach dem Einfügen noch gilt, ist sie in xverletzt. Nach der Rotation gilt die Höhenbedingung jedoch wieder. Die Höhe der Teilbäume vonyist gleich der Höhe der Teilbäume vonxvor dem Einfügen. Damit ist die Höhenbedingung jetzt überall im Baum erfüllt.

Mitunter muss man eine Doppelrotation vornehmen, um den Baum zu rebalancieren.

D D D D D D

C C C C C b

D D D D D D b

D D D D D D

b

PP PP 6

?

h

6

?

h

6

?

h-1

6

? A h

B

C D

(−∞, x)

(x, y)

(y, z) (z,+∞)

x y

z

D D D D D D

D D D D D D b

@

@

C C C C C

D D D D D D b

@

@ b

PP PP

6

?

h

6

?

h

6

?

h-1

6

?

h

A B

C

D

(−∞, x) (x, y) (y, z)

(z,+∞)

x

y z

ADS-EI 3.2 AVL-B¨aume 336/451

ľErnst W. Mayr

(19)

Beispiel 157 (Doppelrotation zur Rebalancierung)

66 KAPITEL 3. ALGORITHMEN UND DATENSTRUKTUREN

Beschäftigen wir uns also zunächst mitinsert:

1. Dieser Schritt erfolgt wie bisher.

2. In diesem Schritt wird die Höhenbedingung wieder hergestellt. Es dürfte klar sein, dass die Höhenbedingung nur auf dem Pfad von der Wurzel zu dem eingefügten Knoten verletzt sein kann. Wir verfolgen daher den Pfad von unten nach oben und stellen die Höhenbedingung wieder her. Dazu nutzen wir sogenannte Rotationen.

Die folgende Skizze zeigt eine Rotation umx-y:

C C C C C

C C C C C b

@

@

C C C C C b

@

@@

(−∞, x) (x, y) (y,+∞)

A B

C y

x -

Rechtsrotation

Linksrotation

C C C C C

C C C C C

b

@

@

C C C C C

b

@

@@

(−∞, x)

(x, y) (y,+) A

B C

x y

Wie man unschwer erkennen kann wird durch diese Operation die Höhe der Teil- bäume verändert. Sehen wir uns daher ein Beispiel an, wie man die Rotation zum Wiederherstellen der Höhenbedingung verwenden kann:

D D D D D D

C C C C C

b

@

@

C C C C C

b

H H

HH

A

B

C (−∞, x)

(x, y)

(y,+) x

y 6

? h-1

6

? h-1

6

? h

- Rotation

C C C C C

C C C C C b

@

@

D D D D D D b

H H

HH

A B

C (−∞, x) (x, y)

(y,+∞) y

x

6

? h-1

6

? h-1

6

? h

Während im Knotenydie Höhenbedingung nach dem Einfügen noch gilt, ist sie in xverletzt. Nach der Rotation gilt die Höhenbedingung jedoch wieder. Die Höhe der Teilbäume vonyist gleich der Höhe der Teilbäume vonxvor dem Einfügen. Damit ist die Höhenbedingung jetzt überall im Baum erfüllt.

Mitunter muss man eine Doppelrotation vornehmen, um den Baum zu rebalancieren.

D D D D D D

C C C C C b

D D D D D D b

D D D D D D

b

PP PP 6

? h

6

? h

6

? h-1

6

? A h

B

C D

(−∞, x)

(x, y)

(y, z) (z,+) x

y

z

D D D D D D

D D D D D D b

@

@

C C C C C

D D D D D D b

@

@ b

PP PP

6

? h

6

? h

6

? h-1

6

? h

A B

C

D (−∞, x) (x, y)

(y, z)

(z,+) x

y z

ADS-EI 3.2 AVL-B¨aume 337/451

ľErnst W. Mayr

(20)

Zur Rebalancierung des AVL-Baums sind Rotationen und

Doppelrotationen nur entlang des Pfades zum eingef¨ugten Knoten erforderlich. Damit ergibt sich

Lemma 158

In einen AVL-Baum mitnKnoten kann ein neuer Schl¨ussel in Zeit O(logn)eingef¨ugt werden.

Ebenso kann man zeigen

Lemma 159

In einen AVL-Baum mitnKnoten kann ein im Baum vorhandener Schl¨ussel in ZeitO(logn) gel¨oscht werden.

Damit

Satz 160

In einem AVL-Baum mitnKnoten kann jede

W¨orterbuch-Operation in Zeit O(logn)ausgef¨uhrt werden.

ADS-EI 3.2 AVL-B¨aume 338/451

ľErnst W. Mayr

(21)

Beispiel 161

1 2

3 4

5 6

7

8 9

0

1 2

3 4

5 6

7

8 9 0

ADS-EI 3.2 AVL-B¨aume 339/451

ľErnst W. Mayr

(22)

Beispiel 162 (Rebalancierung mit Doppelrotation)

0 1

2

4 5

6 7

8 9

3

0 1

2

3 4

5

6 7

8 9

ADS-EI 3.2 AVL-B¨aume 340/451

ľErnst W. Mayr

(23)

3.3 (a, b)-B¨aume

Definition 163

Ein(a, b)-Baum ist ein externer Suchbaum, f¨ur den gilt:

1 alle Bl¨atter haben die gleiche Tiefe

2 alle internen Knoten haben ≤b Kinder

3 alle internen Knoten außer der Wurzel haben ≥a, die Wurzel hat ≥2 Kinder

4 b≥2a−1

5 in jedem internen Knoten sind jeweils die gr¨oßten Schl¨ussel seiner Unterb¨aume mit Ausnahme des letzten gespeichert

ADS-EI 3.3(a, b)-B¨aume 341/451

ľErnst W. Mayr

(24)

Beispiel 164

1 4 7 9 15 17 21 24 32 35 39 43 47 52 53 56 62 67 71

1·4 9 17 24 35 43·47 53·56 67

7·15 32 52·62

21·39

ADS-EI 3.3(a, b)-B¨aume 342/451

ľErnst W. Mayr

(25)

Bemerkung:

(a, b)-B¨aume mitb= 2a−1heißen auchB-B¨aume. Diese wurden erstmals in einer Arbeit von R. Bayer und E.M. McCreight im Jahr 1970 beschrieben. (2,3)-B¨aume wurden von J. Hopcroft ebenfalls 1970 eingef¨uhrt.

Insert-Operation:Ubersteigt durch eine Insert-Operation ein¨ Knoten die Anzahl der zul¨assigen Kinder, so wird er in zwei Knoten geteilt.

Delete-Operation:F¨allt durch eine Delete-Operation die Anzahl der Kinder eines Knoten untera, so wird ein Kind vom linken oder rechten Geschwister des Knoten adoptiert.

ADS-EI 3.3(a, b)-B¨aume 343/451

ľErnst W. Mayr

(26)

Beispiel 165 (F¨ uge

” 60“ in (2,3)-Baum ein)

1 4 7 9 15 17 21 24 32 35 39 43 47 52 53 56 62 67 71

1·4 9 17 24 35 43·47 53·56 67

7·15 32 52·62

21·39

ADS-EI 344/451

ľErnst W. Mayr

(27)

Beispiel 165 (F¨ uge

” 60“ in (2,3)-Baum ein)

1 4 7 9 15 17 21 24 32 35 39 43 47 5253 56 60 6267 71 1·4 9 17 24 35 43·47 53·56·60 67

7·15 32 52·62

21·39

ADS-EI 344/451

ľErnst W. Mayr

(28)

Beispiel 165 (F¨ uge

” 60“ in (2,3)-Baum ein)

1 4 7 9 15 17 21 24 32 35 39 43 47 52 53 56 60 62 67 71

1·4 9 17 24 35 43·47 53 60 67

7·15 32 52·56·62

21·39

ADS-EI 344/451

ľErnst W. Mayr

(29)

Beispiel 165 (F¨ uge

” 60“ in (2,3)-Baum ein)

1 4 7 9 15 17 21 24 32 35 39 43 47 52 53 56 60 62 67 71

1·4 9 17 24 35 43·47 53 60 67

7·15 32 52 62

21 56

39

ADS-EI 3.3(a, b)-B¨aume 344/451

ľErnst W. Mayr

(30)

Korollar 166

In einem(a, b)-Baum mitn gespeicherten Schl¨usseln k¨onnen die W¨orterbuchoperationen in ZeitO(logan) durchgef¨uhrt werden.

Bemerkung:Die Wahl von aund bh¨angt wesentlich von der Anwendung und der Gr¨oße des (a, b)-Baums ab.

Liegt der (a, b)-Baum im RAM, dann w¨ahlt man bklein, um in jedem inneren Knoten den richtigen Unterbaum schnell zu finden.

Andernfalls w¨ahlt managroß. Der Baum hat dadurch nur geringe Tiefe, seine oberen Schichten k¨onnen im RAM gehalten werden, und die Anzahl der Zugriffe auf den Sekund¨arspeicher (Festplatte) ist klein.

ADS-EI 3.3(a, b)-B¨aume 345/451

ľErnst W. Mayr

Referenzen

ÄHNLICHE DOKUMENTE

Problem: Es entstehen prim¨ are H¨ aufungen (primary clustering) um diejenigen Schl¨ ussel herum, die beim Einf¨ ugen eine Kollision hervorgerufen haben. EADS 4.2 Methoden

Der Array btop[0..B] nimmt in jedem Bucket Elemente mit Schl¨ usseln aus einem Intervall der L¨ ange B auf; die Schl¨ ussel stammen aus allen Intervallen außer dem niedrigsten.

Andernfalls kann der Gegenspieler einen oder beide Schl¨ ussel so festlegen, dass immer noch mindestens r/2 Sortierungen m¨ oglich sind (wir verwenden hier, dass die Schl¨ ussel

2 In jedem von H’s Binomialb¨ aumen ist ein kleinster Schl¨ ussel an der Wurzel gespeichert; verlinkt man daher die Wurzeln aller Binomialb¨ aume von H in einer zirkul¨ aren Liste,

(a) Bestimmen Sie die Struktur der elliptischen Kurven (als Gruppen), die durch die Glei- chungen y 2 = x 3 + ax f¨ ur a = 1, 2, 3 ¨ uber F 17 gegeben sind (dazu ist die Software

Implementieren Sie auch die anderen notwen- digen Rotationsarten und erg¨anzen Sie die Methode zum Einf¨ugen um die entsprechenden Methoden- aufrufe f¨ur Rotationen.. Schreiben

27 Als Hauptabfluss für die an den Südhängen des Beerenberges angehäuften Eismassen ist der Sttdgletscher, der grösste nnd breiteste auf der Insel zu betrachten. Zwei an 30 Meter

Da sie Angst haben, dass ihre Nachrichten mitgelesen werden, kreieren sie dazu einen geheimen Schl ¨ussel mithilfe des Diffie-Hellman Schl ¨usselaustausches.. Sei G = (Z/77, +)