# TD Algorithmique
## Exercice 1 : recherche récursive du minimum et du maximum
Syrine
fonction id(A et B : arbre (in)) retourne un booleen
Debut
Si A == Null && B == Null{
bool = true
return bool
}
Sinon{
Si A == Null && B != Null || B == Null && A != Null{
bool = false
return bool
}
Sinon {// donc A et B non null
Si clé(A)=clé(B){
return id(g(A),g(B)) || id(d(A),d(B)) // prend true ssi les deux retourne true
}
Sinon{
bool = false
return bool
}
}
}
Fin
Thomas Le Coent
Fonction id(A, B : Arbres (in)) retourne booléen
Debut:
Si (A = null et B = null){
retourner Vrai
}
Si (A = null et B != null) ou (B = null et A != null){
retourner Faux
}
Si A != null et B != null{
Si clé(A) = clé(B){
retourner id(g(A), g(B)) et id(d(A), d(B))
} Sinon {
retourner Faux
}
// il faut aussi comparer les racines ...
}
Fin
Adrien :
Procédure MinMaxRec(T[] entiers : IN, start : entier, stop : entier, minmax[2] : entier)
Lexique :
minmax[2] d'entiers;
Début :
Si (start = stop){
minmax[1] = start
minmax[2] = start
}
temp_a = MinMaxRec(start, (start + stop) / 2, minmax)
temp_b = MinMaxRec((stop+start) / 2, stop, minmax)
si (T[temp_a[1]] > T[temp_b[1]]) alors minmax[1] = temp_a[1]
sinon minmax[1] = temp_b[1]
si (T[temp_a[2]] > T[temp_b[1]]) alors minmax[2] = temp_a[2]
minmax[2] = temp_a[2]
Fin