Menu
Coddy logo textTech

Implementation (Part 2)

Leçon 6 sur 9 du cours Tri par tas - Série DSA de Coddy.

Maintenant, nous combinons la construction du tas et l'extraction répétée du maximum.

challenge icon

Défi

Moyen

Maintenant, rassemblez tout cela pour former l'algorithme complet.

Écrivez une fonction nommée heapSort qui prend un tableau d'entiers et le renvoie trié par ordre croissant.

Construisez d'abord un tas-max (max-heap) en faisant descendre (sifting down) chaque nœud non-feuille, de l'indice n/2 - 1 jusqu'à 0. Ensuite, échangez de manière répétée la racine (la plus grande valeur) avec le dernier élément du tas, réduisez la taille du tas de un, et faites redescendre la nouvelle racine.

Utilisez une fonction auxiliaire sift-down qui prend en paramètre la size actuelle du tas, afin de pouvoir réduire le tas au fur et à mesure.

Essayez vous-même

#include <stdlib.h>

int* heapSort(int* arr, int arr_size, int* returnSize) {
    // Écrivez le code ici
    *returnSize = arr_size;
    return arr;
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Tri par tas - Série DSA