Menu
Coddy logo textTech

Implementation (Part 2)

Lección 6 de 9 del curso Heap Sort - Serie de DSA de Coddy.

Ahora combinamos la construcción del montículo y la extracción repetida del máximo.

challenge icon

Desafío

Intermedio

Ahora ponlo todo junto en el algoritmo completo.

Escribe una función llamada heapSort que reciba un arreglo de enteros y lo devuelva ordenado en orden ascendente.

Primero construye un max-heap realizando un sift-down en cada nodo que no sea hoja, desde el índice n/2 - 1 hasta el 0. Luego, intercambia repetidamente la raíz (el valor más grande) con el último elemento del heap, reduce el tamaño del heap en uno y realiza un sift-down de la nueva raíz.

Utiliza un ayudante sift-down que reciba el size actual del heap, para que puedas reducir el heap a medida que avanzas.

Pruébalo tú mismo

#include <stdlib.h>

int* heapSort(int* arr, int arr_size, int* returnSize) {
    // Escribe el código aquí
    *returnSize = arr_size;
    return arr;
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Heap Sort - Serie de DSA