Construction d'un Tas (Tri par Tas)

zestelle Messages postés 111 Date d'inscription   Statut Membre Dernière intervention   -  
mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

J'ai un peu près tout les éléments pour construire un tas Binaire. Mais je ne comprend pas certain point de l'algo.

Construire-Tas-Max(T)
1 T.taille = T.longueur
2 pour i = [T.longeur/2] decr jusqu'à 1
3 ..................Entasser-Max( T , i )

Est-ce que T.taille= len(T) ?
(Pour moi, il n'a pas de différence entre T.taille et T.longueur mis à part que .longueur est une "fonction" ) (Même si on me dit que T.longueur donne le nombre d'élément dans le tableau et que T.taille représente le nombre d'élément ranger dans le tableau)

comment fait-on en python le decr (le mot me perturbe). ?
J'ai fait :
def Construire_Tas(T):
         while echange != 0 :       #Ici erreur car je n'ai pas déclarer échange
                for i in range(len(T)/2):    
                    entasser_Tas_Max(T,i)
         return T


Merci pour votre aide.

1 réponse

mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   7 879
 
Bonjour,

Je te propose de plutôt repartir de ce qui est expliqué ici :
https://fr.wikipedia.org/wiki/Tri_par_tas

La seule dimension importante est le nombre d'élément à trier, qui correspond à la longueur de la liste qui les stocke et au nombre de nœuds de l'arbre implicitement utilisé pour effectuer le tri.

Bonne chance
0