Jak Začít?

Máš v počítači zápisky z přednášek
nebo jiné materiály ze školy?

Nahraj je na studentino.cz a získej
4 Kč za každý materiál
a 50 Kč za registraci!




11-Trideni_halda_stromy

PDF
Stáhnout kompletní materiál zdarma (1.04 MB)

Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.

𝑛 = 1 + 21 + 22 + ⋯ + 2ℎ−1 + 2ℎ = 1 ∙

2ℎ+1 − 1

2 − 1

= 2ℎ+1 − 1

(jedná se o součet ℎ + 1 členů geometrické řady s kvocientem 2 a 
prvním členem 1).

• Naopak pokud poslední vrstva obsahuje pouze jeden uzel, celkový 

počet uzlů stromu bude: 

𝑛 = 1 + 21 + 22 + ⋯ + 2ℎ−1 + 1 = 1 ∙

2ℎ − 1

2 − 1

+ 1 = 2ℎ

Vztah mezi počtem uzlů a výškou binárního 
vyváženého stromu
• Počet uzlů 𝑛 binárního vyváženého stromu o výšce ℎ se musí 

pohybovat v rozmezí: 2ℎ ≤ 𝑛 ≤ 2ℎ+1 − 1.

• Postupnými úpravami dostaneme:

𝑛 ≤ 2ℎ+1 − 1, 2ℎ ≤ 𝑛

𝑛 + 1 ≤ 2ℎ+1
𝑛+1

2

≤ 2ℎ ≤ 𝑛

𝑙𝑜𝑔2

𝑛+1

2

≤ ℎ ≤ 𝑙𝑜𝑔2 𝑛

𝑙𝑜𝑔2 𝑛 + 1 − 1 ≤ ℎ ≤ 𝑙𝑜𝑔2 ℎ

Třídění s využitím haldy

Halda

• Speciální typ vyváženého binárního stromu, u kterého prvky ve všech 

uzlech splňují podmínku haldy:

• Hodnota prvku v uzlu předchůdce (a) nesmí být menší než hodnota prvku v 

jeho následovnících (b, c)  (pokud následovníci existují). 

b

a

c

𝑎 ≥ 𝑐

𝑎 ≥ 𝑏

Symbolická značka pro haldu

Algoritmus třídění pomocí haldy

• Algoritmus má dvě fáze

• Vytvoření haldy
• Vlastní třídění

Vytvoření haldy

• Z počtu prvků 𝑛 tříděného pole stanovíme výšku haldy: ℎ = 𝑙𝑜𝑔2 𝑛
• Sestavíme binární strom výšky ℎ s 𝑛 uzly a naplníme ho tříděnými 

prvky (do každého uzlu dáme jeden tříděný prvek).

• Odspodu procházíme nelistové uzly a ověřujeme, zda splňují 

podmínku haldy vzhledem ke svým následníkům. 

• Ověřujeme, zda hodnota prvku v uzlu není menší než hodnoty prvků v jeho 

následnících.

Vytvoření haldy

• Pokud uzel nesplňuje podmínku haldy, musíme provést výměnu 

prvků.

b

a

c

𝑎 < 𝑏

𝑏 ≥ 𝑐

Témata, do kterých materiál patří