---
# System prepended metadata

title: TD Algorithmique

---

# 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

    