Appendix A: Heap Bottom-up Construction

1 / 5

# Appendix A: Heap Bottom-up Construction - PowerPoint PPT Presentation

Appendix A: Heap Bottom-up Construction. Course: Algorithm Analysis and Design. Heap bottom up construction. This method views every position in the array as the root of a small heap and uses downheap procedure for such small heaps.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## Appendix A: Heap Bottom-up Construction

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### Appendix A: Heap Bottom-up Construction

Course: Algorithm Analysis and Design

Heap bottom up construction

This method views every position in the array as the root of a small heap and uses downheap procedure for such small heaps.

Figure 1: The heap created from the array of characters: A, S, O, R, T, I, N, G, E, X, A, M, P, L, E.

Heap bottom-up construction procedure

procedure build_heap;

begin

for k:= M div 2 downto 1 do

downheap(k);

end

M: the number of elements in the heap.

The keys in a[ (M div 2)+1 .. M] each form heaps of one element, so they satisfy the heap condition and don’t need to be checked.

Property: Bottom-up heap construction is linear-time.

For example: To build a heap of 127 elements, the method calls downheap on

• 64 heaps of size 1
• 32 heaps of size 3
• 16 heaps of size 7
• 8 heaps of size 15
• 4 heaps of size 31
• 2 heaps of size 63
• 1 heaps of size 127

So the method needs 64.0 + 32.1 + 16.2 + 8.3 + 4.4 + 2.5 + 1.6 = 120 “promotions”.

0.26 + 1.25 + 2.24 + 3.23 + 4.22 + 5.21 + 6.20

0.26 + 1.25 + 2.24 + 3.23 + 4.22 + 5.21 + 6.20

(M= 127 = 27 -1) m = 7

For M = 2m, an upper bound on the number of comparisions is

(1-1)2m-1 + (2-1)2m-2 + (3 -1)2m-3+… + (k-1)2m-k + … (m-1-1)2m-(m-1) + (m -1)2m-m.

= 1.2m-2 + 2.2m-3 +3.2m-4+ 4.2m-5 +…+ (k-1)2m-k + …

(m-2)21 + (m -1)20

= (2m-2 + 2m-3 + …+ 20) + (2m-3 + …+ 20) + (2m-4 + …+ 20) …+(22 + 21 + 20) + (21 + 20) + 1

= (2m-1 -1)+ (2m-2 -1) + … (23-1) + (22-1) +(21-1)

= (2m-1 + 2m-2 + … 22 + 21)– m +1

= (2m-1 + 2m-2 + … 22 + 21+1) – m

= (2m -1) – m < M

So the complexity of heap bottom-up building is O(M).