# 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