MinEtMax(T)
entree: un tableau d’entiers T de taille n> 0
sortie: le min et le max de T
variables: min, max: entier
1 min <- T[0], max<- T[0]
2 pour i allant de 1 a n-1 faire
3 si T[i]< min alors min <- T[i] fin si
4 si T[i]> max alors max <- T[i] fin si
5 fin faire
6 renvoie min,max
MinEtMaxOpt(T)
entree: un tableau d’entiers T de taille n > 0
sortie: le min et le max de T
variables: min, max, d=0:entier
1 si n mod 2 = 1 alors min <- T[0], max<-T[0], d=1
2 sinon si T[0]<T[1] alors min <- T[0], max<-T[1]
3 sinon min <- T[1], max<-T[0]
4 fin si
5 fin si
6 pour i allant de 1 a (n-1)/2 faire
7 si T[2i-d]< T[2i+1-d] alors
8 si T[2i-d] < min alors min <- T[2i-d] fin si
9 si T[2i+1-d] > max alors max <- T[2i+1-d] fin si
10 sinon
11 si T[2i+1-d] < min alors min <- T[2i+1-d] fin si
12 si T[2i-d] > max alors max <- T[2i-d] fin si
13 fin si
14 fin faire
15 renvoie min,max
Il vaut sans doute mieux traiter uniquement le cas longueur(T) mod 2 = 0, et laisser tomber le décalage
d, à moins qu’il y ait une façon plus rusée de s’y prendre.
Exercice 3. Intervalles d’entiers.
On dispose des fonctions min et max qui renvoient respectivement le plus petit et le plus
grand élément d’un tableau d’entiers donné.
1. Écrivez une fonction contientUnique qui prend en argument un tableau d’entiers Tet un
entier x, et qui retourne 1 si Tcontient xune unique fois, et qui retourne 0 sinon.
2. Écrivez une fonction verifieIntervalle qui prend en argument un tableau d’entiers Tet deux
entiers aet b(avec a≤b) et qui retourne 1 si Tcontient chaque entier entre aet b(aet
bcompris) une unique fois, et que Tne contient aucun autre entier, et qui vaut 0 sinon.
Autrement dit, cette fonction vérifie que Tcorrespond à l’intervalle [a,b]. Cette fonction
utilisera contientUnique.
3. Écrivez une fonction verifieIntervalle2 qui prend en argument un tableau d’entiers Tet
qui retourne 1 si Tcorrespond à un intervalle (c’est-à-dire s’il existe aet btels quel T
contient chaque entier entre aet b, une unique fois, mais aucun autre) et qui retourne 0
sinon. Cette fonction utilisera verifieIntervalle,min et max.
Correction :
2