1 / 5

Appendix A: Heap Bottom-up Construction

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.

lynton
Télécharger la présentation

Appendix A: Heap Bottom-up Construction

An Image/Link below is provided (as is) to download presentation 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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Appendix A: Heap Bottom-up Construction Course: Algorithm Analysis and Design

  2. 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.

  3. 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.

  4. 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

  5. 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).

More Related