Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Heap Algo - Hilfe bei Übungen aus dem Sedgewick

Empfohlene Antworten

Veröffentlicht

Hallo,

hab da eine kleine Frage zu Übungen aus dem Sedgewick

Frage 4:

  • Welche Positionen können von dem drittgrößten Schlüssel in einem Heap der Größe 32 eingenommen werden?
  • Welche Positionen können von dem drittkleinsten Schlüssel in einem Heap der Größe 32 nicht eingenommen werden?

Aus dem Kapitel 11.5 (Robert Sedgewick: Algorithmen) geht hervor:

Um zum Beispiel einen Heap aus 127 Elementen aufzubauen, ruft die Methode downheap für (64 Heaps der Größe 1), 32 Heaps der Größe 3, 16 Heaps der Größe 7, 8 Heaps der Größe 15, 4 Heaps der Größe 31, 2 Heaps der Größe 63 und einen Heap der Größe 127 auf, so daß im ungünstigsten Falle 64 * 0 + 32 * 1 + 16 * 2 + 8 * 3 + 4 * 4 + 2 * 5 + 1 * 6 = 120 »Übertragungen« (doppelt so viele Vergleiche) benötigt werden. Für M = 2m ist eine obere Schranke für die Anzahl der Vergleiche durch

verstehe ich das jetzt richtig das ich bei der Frage annehmen kann das mit der "Größe" eines Heap dort die Anzahl der Elemente gemeint ist ?

also:

16 Heaps der Größe 1

8 Heaps der Größe 3

4 Heaps der Größe 7

2 Heaps der Größe 15

1 Heap der Größe 31

16 * 0 + 8 * 1 + 4 * 2 + 2 * 3 + 1 * 4 = 26

( den Teil versteh ich leider nicht ganz)

Also mal gedanklich das ganz als Baum vorgestellt, hätte ich links 16 knoten (15+ das letzte Child (Element 32) und rechts 15 Knoten.... dazu + einmal die Wurzel = 32 Elemente.

Somit könnte der 3. größte Schlüssel 17 Positionen inkl. seiner derzeitigen der Wurzel und + das eine Blatt der letzten Knotenebene (Element 32) einnehmen.

Wenn man davon ausgeht das upheap wie downheap auf das element losgelassen wird.

Sollte nur Downheap gehen dann fällt die wurzel weg = 16 Positionen.

das 3. kleinste Element, was auch im rechten Teilbaum wäre, könnte 25 nicht einnehmen.

wenn man davon ausgeht das upheap und downheap losgelassen wird.

Denn es kann durch diese Operationen lediglich 7 Positionen einnehmen

bei 32 möglichen Positionen macht das 25 ...

De linke teilbaum fällt weg (ausgenommen element 32) und vom rechten teilbaum der linke zweig vom 7. größten und 3. Größten Schlüssel...

==========

So wenn das da oben von mir ÜBERHAUPT richtig ist kann man das sicher geschickter erklären... kann mir da wer helfen bitte ? :)

ok mein erster Denkfehler ist glaub ich das erreichen des letzten Elements vom rechten Teilbaum aus... das haut nicht hin... glaub ich...

Ok ich versuch die Antwort mal neu zu formulieren...

Grundlegende Betrachtung zum gegebenen Heap:

  • 32 Elemente
  • 16 Knoten
  • 16 Blätter
  • Tiefe 6

Aufgaben Teil a.)

  • 3. größter Schlüssel (3. Knoten bzw. 2. Knoten nach der Wurzel)
  • Aufgabenstellung besagt die vorangegangenen Schlüssel sind größer.
  • Somit handelt es sich um einen Heap-Max
  • Aufgrund der Heapbedingung ist anzunehmen das die Folgeelemente kleiner sind.

Aufgaben Teil b.)

  • 3. kleinster Schlüssel (14. Blatt bzw. linker Nachfolger des 15. Knotens)
  • Aufgabenstellung besagt die nachfolgenden Schlüssel sind kleiner.
  • Es ist anzunehmen das es sich auch hier um einen Heap-Max handelt.
  • Aufgrund der Heapbedingung ist anzunehmen das alle Vorgänger größer sind.

Somit finde ich die Aufgabe irgendwie schwer zu zu beantworten, weil somit implizit gesagt wurde das das jeweils beschriebene Element in Aufgabenteil a.) und b.) eigentlich nirgends hin kann da es sich bereits an der richtigen stelle befindet...

Eine gültige alternative Position könnte höchstens der Vaterknoten sein. Da die Heapbedingung an dieser Stelle besagt, dass der Nachfolgeknoten kleiner sein muss oder gleich groß wie das Knotenelement.. was ja an der Stelle der Fall sein könnt bei Aufgabenteil b.)

alles n bischen "strange"... kann mir wer ausm Dilemma helfen ?

Ich finde auch keine Lösung dazu im Netz... -.-

Wenn es wirklich nur ums hochschieben und runterschieben geht, und das auch in einem Schritt bis Ende dann bedeutet das für

Aufgabenteil a.)

+ runterschieben (14)

+ hochschieben (1)

+ sich selbst

= 16 mögliche Positionen

Aufgabenteil b.)

+ runterschieben (0) es ist ein Blatt

+ hochschieben (4)

+ sich selbst

= 5 mögliche Positionen

und nun der Clou da steht j ein nicht also ist die Antwort: Es gibt 27 Positionen die er nicht einnehmen kann (32 gesamt - 5 möglich)

wenn ich abwechselnd up und down heap benutzen könnte dann wären schlichtweg alle Positionen möglich...

boa ... *confused* hoch 3

Bearbeitet von Dionysos211

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.