Hromada je binární strom, jehož vrcholy jsou ohodnoceny celými čísly a který má následující vlastnosti:
Důsledkem tohoto uspořádání je, že na vrcholu hromady je vždy prvek s minimálním ohodnocením.
Nad hromadou jsou definovány dvě operace:
1) Insert (Hodnota) - Vložení nového uzlu
Umístění nového uzlu je jednoznačně dáno z definice hromady. Ohodnocení uzlů se musí překontrolovat, případně zaměnit prvky tak, aby ohodnocení odpovídalo definici.
Provedeme-li na předcházející hromadu operaci Insert (7), bude hromada vypadat tak, jak je to na obr. .
2) Extract_min - Výběr minimálního prvku.
Minimální prvek je na vrcholu hromady. Na místo odebraného vrcholového prvku se uloží posledně vkládaný vrchol (je jednoznačně dáno, který to je) a provede se záměna prvků hromady tak, aby odpovídalo pravidlům hromady.
Provedeme-li na předcházející hromadu operaci Extract_min, bude hromada vypadat tak, jak je to ukázáno na obr .
Výhodou uspořádání stromu do hromady je mezi jiným i to, že lze její prvky uložit do vektoru (jednorozměrné pole).
Levý následník prvku vi je na pozici 2*i
Pravý následník prvku vi je na pozici 2*i+1.
Hromada se využívá pro řazení. Metoda není stabilní ani přirozená.
Doba řazení je:
T ≈ n . log2 n