Construction d'un Tas (Tri par Tas)

Fermé
zestelle Messages postés 109 Date d'inscription mardi 20 avril 2010 Statut Membre Dernière intervention 19 septembre 2018 - Modifié par zestelle le 16/03/2017 à 07:01
mamiemando Messages postés 33407 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 novembre 2024 - 20 mars 2017 à 10:09
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 33407 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 novembre 2024 7 806
20 mars 2017 à 10:09
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