CLRS Solutions 6.3 Building a heap


6.3-2

Why do we want the loop index i in line 2 of BUILD-MAX-HEAP to decrease from A.length/2 to 1 rather than increase from to A.length/2?

Otherwise we won't be allowed to call MAX-HEAPIFY, since it will fail the condition of having the subtrees be max-heaps. That is, if we start with 1, there is no guarantee that A[2] and A[3] are roots of max-heaps.

6.3-3

Show that there are at most n/2h+1 nodes of height h in any n-element heap.

The height of binary heap is as following:

A heap of size n has at most n/2h+1 nodes with height h. Key Observation: For any n>0, the number of leaves of nearly complete binary tree is n/2. Proof by induction Base case: Show that it's true for h=0. This is the direct result from above observation. Inductive step: Suppose it's ture for h1. Let Nh be the number of nodes at height h in the n-node tree T. Consider the tree T formed by removing the leaves of T. It has n=nn/2=n/2 nodes. Note that the node at height h in T would be at height h1 in tree T. Let Nh1 denote the number ot nodes at height h1 in T, we have Nh=Nh1. By induction, we have Nh=Nh1=n/2h=n/2/2h(n/2)/2h=n/2h+1

Comments

Popular posts from this blog

BdsDex: failed to load Boot0001 "UEFI BHYVE SATA DISK BHYVE-OABE-20A5-E582" from PciRoot(0x0)/Pci (0x2, 0x0)/Stat(0x0,0xFFFF,0x0) : Not Found

Install Shadowsocks-libev as Client on Debian Linux

Install Debian(11.1.0) Linux VM on FreeBSD(13.0) with grub2-bhyve and ZFS without GUI