دو نوع Heap دودویی وجود دارد:max-Heapها وmin-Heapها.در هر دو نوع، مقادیر درون گرهها ویژگی Heap را ارضاء میکنند که ویژگیهای هرکدام به نوع Heap بستگی دارند.ویژگیmax-Heap این است که برای هر گره i به جزء ریشه:
<source lang="java">
A[PARENT(i)]>A[i]
</source>
به طوری که:
<source lang="java">
PARENT(i)
return i/2
</source>
به عبارت دیگر مقدار یک گره حداکثر برابر مقدار پدرش است؛ بنابراین بزرگترین عضو max-Heap در ریشه ذخیره میشود.ویژگی min-Heap به صورت بر عکس شکل میگیرد.کوچکترین عضو در ریشه قرار میگیرد.در این الگوریتم مرتب سازی ازmax-Heap استفاده کردیم.