Mover el último elemento a la raíz y acortar el array.
Bajar: mientras sea mayor que alguno de sus hijos, intercambiarlo con el menor de ellos.
Primero mira un ejemplo con otro heap, [1, 4, 2, 6, 5, 3, 7], del que se extrae el 1:
Paso 1 de 4. Se guarda el 1 para devolverlo; el último elemento, 7, pasa a la raíz y el array se acorta. Los hijos de 7 son 4 y 2: el menor es 2.Paso 2 de 4. 7 se intercambia con 2, el menor de sus hijos, no con 4.Paso 3 de 4. 7 tiene un solo hijo, 3 (la posición 6 ya no existe). 3 es menor que 7: se intercambian.Paso 4 de 4. 7 es ahora una hoja: no tiene hijos con quien compararse y bajar termina. El array es un heap y se devolvió el 1.
Borde grueso: lo que se compara. Relleno con asterisco: lo que acaba de cambiar.
Ahora tú: extraes el mínimo de [1, 5, 2, 9, 7, 8, 3].