מערך : 3 מימוש Make. Heap(Q) Insert(x, Q) O(1) O(log(n)) Max(Q) O(1) Delete. Max(Q) O(1) O(log(n)) סיבוכיות מקום נוסף
תכונות מימוש : 3 מערך n =12 1 5 7 12 10 11 8 2 3 10 9 8 7 6 9 11 5 2 r+1 4 16 r 13 2 r הלא - עלה האחרון n/2 העלה הראשון n/2 +1 12 7 3 16 13 12 3 1 2 1 3 13 6 10 2 4 9 5 11 9 10 11 12 5 7 1 8 8 2
sift-down פרוצדורה sift_down r 13 { int r; for (r = 1; r <= n/2; ){ /* n/2 is the last non-leaf */ 2 r if (2 r = = n){ /* r has one child at 2*r */ if (a[r] < a[2*r]) swap(r, 2*r); break; } else {/* r has two children at 2*r and 2*r+1 */ if (a[r] < a[2*r] && a[2*r] >= a[2*r+1]){ swap(r, 2*r); r *= 2; } else if (a[r] < a[2*r + 1] && a[2*r + 1] >= a[2*r]){ swap(r, 2*r + 1); r * = 2*r + 1; } else break; } } } 2 r+1