How it works?
Lição 3 de 9 do curso Heap Sort - Série de DSA da Coddy.
Um heap binário reside em um array comum. Para o nó no índice i (baseado em 0), seus filhos estão em 2*i + 1 e 2*i + 2. Essa indexação é todo o truque que permite que uma árvore resida em um array.
Processo Passo a Passo:
- Construir um max-heap: rearranje o array para que cada pai seja >= seus filhos. O maior valor termina no índice 0.
- Extrair o máximo: troque a raiz (o maior) com o último elemento do heap, então diminua o heap em um para que o maior fique agora estacionado no final em sua posição ordenada final.
- Reparar com sift-down: a nova raiz pode estar fora de lugar, então faça o sift-down (troque-a com seu filho maior, repita) até que a propriedade do heap seja mantida novamente.
- Repetir até que o heap esteja vazio. O array agora está ordenado de forma crescente.
Exemplo em [4, 10, 3, 5, 1]:
- Construir um max-heap: [10, 5, 3, 4, 1].
- Trocar a raiz 10 para o final e fazer o sift-down, depois repetir para 5, 4, 3.
- Resultado: [1, 3, 4, 5, 10].
Experimente você mesmo
Esta lição não inclui um desafio de código.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Heap Sort - Série de DSA
2The Algorithm
How it works?Pseudo CodeImplementation (Part 1)Implementation (Part 2)