null
US
Sign In
Sign Up for Free
Sign Up
We have detected that Javascript is not enabled in your browser. The dynamic nature of our site means that Javascript must be enabled to function properly. Please read our
terms and conditions
for more information.
Next up
Copy and Edit
You need to log in to complete this action!
Register for Free
4452077
Haldy
Description
PAL
No tags specified
it
computing
math
a4m33pal
grafy
semester
Mind Map by
Michal Roch
, updated more than 1 year ago
More
Less
Created by
Michal Roch
almost 9 years ago
38
0
0
Resource summary
Haldy
Typy
Binární halda
Popis
Kompletní binární strom - všechny úrovně kromě jsou plně obsazeny
Operace
Insert
Přidat na konec haldy
Swapovat s parentem dokud není platná podmínka
AccessMin
Vrátí kořen
Delete / DeleteMin
Prohoď prvek s posledním prvkem haldy
Swapuj dokud není obnovena podmínka haldy
Smaž poslední prvek
BuildHeap
Seřadí pole do haldy
Od dolní meze poloviny délky pole až po první prvek volá Heapify
Pokud jeden nebo více potomků je větší než rodič
Prohod většího z potomků s rodičem
O(n)
Reprezentace
Spojový seznam
Pole
X(1)- kořen
X(n) - prvek
X(2n) / X(2n+1) - potomci
Binomiální halda
Popis
Les binomiálních stromů odlišného stupně
Každý strom daného stupně může být přítomen max 1
Binomiální strom je definován rekurzivně
Stupeň 0 je jeden prvek
Stupeň k má kořen, jehož potomci jsou stromy stupňě k-1, k-2,...,1,0
Výška binomiálního stromu je rovna jeho stupni
Kořen binomiálního stromu má právě k potomků
Binomiální strom má právě 2^k prvků
i-tá úroveň binomiálního stromu obsahuje právě k nad i prvků
Reprezentace
Kořeny jsou v linked listu protože na kořeny se nedotazujeme náhodně
Udržujeme minpointer který odkazuje na strom s nejmenším kořenem
Operace
Insert
Vytvoří novou haldu s jedním stromem 0 stupně a zavolá merge na původní haldu
AccessMin
Vrátí kořen z minpointeru
Merge
Spojí dvě haldy do jedné
Spojí linkedlisty v pořadí podle stupně stromů
Zleva kontroluje stromy stejného stupně - 4 cases
k[x] <= k[x+1]
x+1 je potomek x
k[x] > k[x+1]
x je potomek x+1
k[x] != l[x+1]
Jdi dál
k[x] == k[x+1] == k[x+2]
Jdi dál
Delete
Přidej potomky min stromu jako nové bin. stromy nové haldy
Smaž původní min strom
Zavolej merge
DecreseKey
Stejné jako u binárního stromu
Delete
Klíč prvku je -INF
Stane se novým minimem
Zavolej delete min
Fibonacciho halda
Vlastnosti
Amortizovaná složitost lepší než bin. halda
Nevhodná pro real-time systémy protože některé operace mají lineární složistot
Složitá na implementaci
Operace
DeleteMin
Všechny potomky stromu nalinkovat na původní místo kořene
Consolidate
Začni od minima a postupuj doprava dokud neprojdeš všechny kořeny
Do pole A ukládej odkaz na strom na pozici d kde d je stupeň stromu
Jakmile narazíš na strom, který je stejného stupně jako už dříve objevený (A[d] je obsazeno)
Kořen s menším klíčem nalinkuj jako potomka většího klíče
Zvyš stupeň stromu a znovu prověř, jestli už nebyl takový strom nalezen
Náhodný kořen je nový min
Instert
Přidej nový strom s jedním prvkem
Nastav mark na false
DecreaseKey
Sniž hodnotu klíče
Pokud je menší než rodič, odřízni ho a přidej jako nový strom
Pokud rodič byl marked odřízni ho taky
Delete
DecreaseKey na nekonečno a deleteMin
Popis
Uvolněná varianta bin. haldy
Markuje uzly při odebrání potomka
Je-li odebrán potomek označenému uzlu, rodič je odtržen a přidán jako nový strom
Díky tomu je velikost podstromu stupně k alepsoń Fk+2 kde Fk je kté Fibb. číslo
Nepotřebné operace odkládá na později
Spojení stromů se dělá jen při DeleteMin (consolidate)
Amortizovaná složitost většiny operací je tak konstantní
Reprezentace
Obousměrný kruhový seznam sousedů a kořenů
Odkaz na prvního potomka
n-ární halda
Zobecnění binární haldy
Operace analogicky stejné
Asymptotická složitost operací stejná
Přesná složitost odlišná podle základu logaritmu
BInární halda je efektivní protože lze využívat binárních posunů pro průchod stromem
n-ární halda je rychlejší pro haldy, které se nevlezou do paměti počítače
Datová struktura (obvykle strom), která splňuje podmínku haldy
Pokud B je potomek A, pak key(B)>=key(A)
Media attachments
62e437f5-0ad2-4da7-a0e0-457307825337 (image/png)
Show full summary
Hide full summary
Want to create your own
Mind Maps
for
free
with GoConqr?
Learn more
.
Similar
Computing
Kwame Oteng-Adusei
Pythagorean Theorem Quiz
Selam H
Geometry Vocabulary
patticlj
Algebra 2 Quality Core
Niat Habtemariam
Types and Components of Computer Systems
Jess Peason
Input Devices
Jess Peason
Output Devices
Jess Peason
Common Technology Terms
Julio Aldine Branch-HCPL
Project Communications Management
farzanajeffri
Network Protocols
Shannon Anderson-Rush
Abstraction
Shannon Anderson-Rush
Browse Library