هرم دودویی
پیاده‌سازی هرم

هرم‌ها به‌طور رایج با آرایه پیاده‌سازی می‌شوند. یک درخت دودویی می‌تواند در یک آرایه ذخیره شود. هیچ فضایی برای اشاره‌گر نیاز نیست، درعوض گره فرزندان و پدر به وسیلهٔ حساب کردن شاخص‌های آرایه پیدا می‌شوند. با این ویژگی پیاده‌سازی هرم به صورت ساده انجام می‌شود. جزییات به موقعیت ریشه بستگی دارد که به نوبه خود به محدودیت زبان برنامه‌نویسی مورد استفاده برای پیاده‌سازی بستگی دارد. به‌طور خاص‌تر بعضی اوقات ریشه در مکان ۱ قرار می‌گیرد. n را تعداد عناصر هرم در نظر بگبرید و i را هم مقدار دلخواه اندیس آرایه، اگر ریشه را در اندیس صفر قرار دهیم انگاه اندیس هر عنصر به صورت زیر می‌شود:
فرزندان  2i+1 و  2i+2
پدرشان  \lfloor {\frac {i-1}{2}}\rfloor
اگر ریشه در اندیس ۱ قرار بگیرد، اندیس هر عنصر به صورت زیر می‌شود:
فرزندان  2i+1 و  2i
پدرشان  \lfloor {\frac {i}{2}}\rfloor
این پیاده‌سازی هم‌چنین برای استفاده به عنوان صف اولویت مناسب است. عملیات هرم‌بالا/هرم‌پایین می‌تواند در شرایط یک آرایه به صورت زیر اعلام شود: فرض کنید که ویژگی هرم نگه می‌دارد برای مشخصه‌های b, b+1, ... , e. تابع غربال کردن به پایین ویژگی هرم را بهb−1, b, b+1, ... , e گسترش می‌دهد، فقط اندیس i = b−۱ می‌تواند این ویژگی را نقض کند. فرض کنید اندیس j بزرگترین بچه[ a[i در هرم بیشینه (کوچکترین فرزند در درخت کمینه) باشد. با جابه‌جا کردن [a[i و [a[j ویژگی هرم برای اندیس i برقرار می‌شود. در این مرحله تنها مسیله این است که ویژگی هرم برای اندیس j برقرار نباشد. تابع غربال کردن به پایین عملی می‌کنددم-بازگشتیرا تا برای همه عناصر ویژگی هرم برقرار باشد.
تابع غربال کردن به پایین سریع عمل می‌کند. در هر مرحله فقط به دو مقایسه و یک جابه‌جایی نیاز دارد. مقدار شاخص در هر تکرار دوبرابر کار می‌کند، به‌طوری‌که تعداد مراحل حداکثر برابر است باlog2  e
برای یک هرم بزرگ و استفاده کردن از حافظه مجازی ذخیره کردن در آرایه به صورت بالا ناکارآمد است.(تقریباً) هر سطر که در یک صفحه (حافظه کامپیوتر) متفاوت است، هرم‌های دودویی هستند که زیردرخت‌ها را در یک حافظه منفرد نگه می‌دارند، تعداد حافظه‌های قابل دسترسی به بالا از عامل ده را کاهش می‌دهد.
عمل ادغام دو هرم دودویی در (Θ(n صورت می‌گیرد که n اندازه هرم است. بهتر است که شما به‌طور ساده دو آرایه هرم را ادغام کنید و سپس از حاصل یک هرم دودویی بسازید. یک هرم با n عنصر و یک هرم با k عنصر می‌توانند در (O(log n log k با هم ادغام شوند.. یک الگوریتم برای جداکردن یک هرم دودویی با n عنصر و تبدیل به دو هرم دودویی با n-k عنصر k عنصر، به‌ترتیب، براساس یک دیدگاه جدید هرم به عنوان مجموعه مرتب‌شده زیرهرم ارائه شد. این الگوریتم به (O(log n * log n مقایسه نیاز دارد. این دیدگاه جدید همچنین به‌طور مفهومی الگوریتم ساده برای ادغام دو هرم ارائه می‌دهد. وقتی که ادغام یک کار رایج است، پیاده‌سازی یک هرم متفاوت توصیه می‌شود، مانند هرم دوجمله‌ای که در (O(log n ادغام می‌شود.
به علاوه یک هرم دودویی می‌تواند با یک داده‌ساختار درخت دودویی مرسوم پیاده‌سازی شود، اما یک نکته برای پیدا کردن عنصر مجاور آخرین سطح روی هرم دودویی وجود دارد. این عنصر می‌تواند به صورت الگوریتمی پیدا شود یا با اضافه کردن اصلاعات اضافی به گره‌هاکه نخ نامیده می‌شود مانند اضافه کردن یک فیلد بعدی به هر گره پیدا شود. می‌توان با اصلاح ساختار هرم هر دو عنصر کوچکترین و بزرگترین در (O(log n پیدا کرد. برای اینکار ردیف‌های متاوب بین هرم بیشینه و کمینه را جایگزین می‌کنیم. این الگوریتم‌ها تقریباً متاوب هستند، اما در هر مرحله باید ردیف‌های متاوب را با مقایسه‌های متناوب در نظر بگیریم. کارایی این الگوریتم تقریباً مشابه جهت منفرد طبیعی هرم است. این ایده می‌تواند برای هرم-بیشینه-کمینه-میانه تعمیم پیذا کند.