מכיוון שהheap מאוזן ככל האפשר, ולכן כל הרמות מלבד התחתונה ביותר
מלאות, וברמה התחתונה, כל האיברים הקיימים נמצאים במקומות השמאליים
ביותר, ניתן ליישם אותו במערך: השורש יימצא ב [ARR[1
והעלה האחרון ב [ARR[Last. בכל פעם שנרצה לגשת לבנים
של צומת [ARR[i, ניגש ל [ARR[2i ו [ARR[2i
+ 1.
ראינו שניתן להכניס איבר ל- heap ב- (O(LogN, (ראה
הכנסת איבר), בניית heap תהיה:
- הקצאת זיכרון, לפי כמות האיברים המקסימלית שאנו רוצים ב- heap.
- הכנסת N האיברים בheap, בזה אחר זה.
הסיבוכיות תהיה אם כן: סיבוכיות קבועה להקצאת הזיכרון, והכנסת
N איברים בעלות (O(LogN לכל אחד. סך-הכל: (O(LogN
* N.
פסאודו-קוד
function HeapMake(Arr)
{
for i=1 to length(Arr)
Heap_insert(Arr[i])
}