finallywe move backward in the list one more element to index this time we only need to look at the values of the two children because they will already be the largest values in their respective heaps calling __siftdownfromto on the first element of the list will pick the maximum value from and and will swap the with that value resulting in the situation in fig this doesn' form complete heap yet we still need to move the down again and __siftdownfromto takes care of moving the to the bottom of the heap as shown in fig fig sifting the down fig the final heap using version of phase this copy belongs to 'acha