Précédent   Forum du club des développeurs et IT Pro > Autres langages > Algorithmes
Algorithmes Forum d'entraide sur l'algorithmique, l'intelligence artificielle, le traitement numérique d'images et les mathématiques. Avant de poster : Cours d'algorithmique
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 03/01/2013, 14h48   #1
oubchid
Invité de passage
 
Inscription : décembre 2008
Messages : 8
Détails du profil
Informations forums :
Inscription : décembre 2008
Messages : 8
Points : 4
Points : 4
Par défaut Montrer un invariant

Bonjour à tous,
Auriez-vous une idée comment montrer que l'invariant suivant est vrai, pour un tableau non trié, pour i= n/2 + 1 = 2^k-1
Code :
invariant 1 Pour tout i compris entre 1 et n, le sous-arbre de racine i est un tas.
Merci

Données : T , un tableau de n réels (la première case numérotée 1)
Résultat : T est modifié. Ne renvoie rien
//: étape 1 : transformation de T en tas
pour i de n/2 à 1 faire
Descente(i,T[1..n])
// étape 2 : tri. On extrait la racine du tas T [1..i] pour la mettre en T [i]
pour i de n à 1 faire
Échanger T [1] et T [i]
// équivaut à supprimer T [1] car i va décroître
Descente(1,T[1..i-1])

Code :
1
2
3
4
5
6
7
8
Procédure Descente(x : indice, T [1..b], un tableau de b réels ) Résultat : T est modifié. Ne renvoie
rien
début
tant que 2x + 1 <= b et (T [x] < T [2x] ou T [x] < T [2x + 1]) faire
si T [2x] > T [2x + 1] alors y = 2x sinon y = 2x + 1
Échanger T [x] et T [y]
x=y
fin
oubchid est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 23h18.


 
 
 
 
Partenaires

Hébergement Web