Binary Heap ( swim, sink, insert delMax)

0.0(0)
Studied by 0 people
call kaiCall Kai
Locked
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/3

encourage image

There's no tags or description

Looks like no tags are added yet.

Last updated 3:18 PM on 9/1/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai
Chat

No analytics yet

Send a link to your students to track their progress

4 Terms

1
New cards

Codeblock 1


Kind zu groß, klettert nach oben

def swim(self, k):
    while k > 1 and self.pq[k//2] < self.pq[k]:
        self.pq[k], self.pq[k//2] = self.pq[k//2], self.pq[k]
        k = k // 2


  1. solange ich nicht die Wurzel bin und größer als mein Vater bin

  2. tausche mich mit meinem Vater

  3. und geh auf die Position des Vaters


2
New cards

Codeblock 2


Vater zu klein, sinkt zum größeren Kind


def sink(self, k):
    while 2*k <= self.N:
        j = 2*k
        if j < self.N and self.pq[j] < self.pq[j+1]:
            j += 1
        if not self.pq[k] < self.pq[j]:
            break
        self.pq[k], self.pq[j] = self.pq[j], self.pq[k]
        k = j
  1. solange ich überhaupt ein linkes Kind habe

  2. zeig erstmal aufs linke Kind

  3. gibt's ein rechtes Kind und ist es größer? dann zeig dorthin

  4. bin ich schon größer als das gewählte Kind? dann fertig

  5. sonst tausche mich mit dem Kind

  6. und geh auf die Position des Kindes


3
New cards

Codeblock 3


hinten anhängen, hochklettern lassen

def insert(self, x):
    self.N += 1
    self.pq[self.N] = x
    self.swim(self.N)


  1. Heap wird um eins größer

  2. das Neue kommt ans Ende

  3. und schwimmt von dort hoch


4
New cards

Codeblock 4

auto

def delMax(self):
    max_val = self.pq
    self.pq, self.pq[self.N] = self.pq[self.N], self.pq
    self.N -= 1
    self.sink(1)
    self.pq[self.N+1] = None
    return max_val


  1. merk dir die Wurzel, das ist das Maximum

  2. tausch die Wurzel mit dem letzten Element

  3. Heap wird um eins kleiner

  4. die neue Wurzel sinkt an ihren Platz

  5. Referenz auf das Entfernte löschen (Loitering)

  6. und gib das Gemerkte zurück