Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
1. T[1..Taille] d'entiers
3. d'entiers
void Tri_Gnome(Tableau* T, Entier Taille) //Tri croissant
croissant
Debut
Entier i = 1;
TantQue(i < Taille) faire
Si (T[i] < T[i+1]) alors
i++;
Sinon
la case
Permuter(T, i, i+1); //permuter le contenu de la case d'indice
d'indice ii avec
avec celle
celle d'indice
d'indice i+1
i+1
Si (i>1) alors i--
Sinon i++;
FinSi
FinSi
Fin.
FinTantQue
Fin.
4. Complexité au meilleur cas est C(n) = O(n); elle correspond le cas ou le tableau est déjà trié d'une
manière croissante.
2. Complexité au meilleur cas est C(n) = O(n); elle correspond le cas ou le tableau est déjà trié d'une
Complexité
manière au pire cas est C(n) = O(n2); elle correspond le cas ou le tableau est trié d'une
croissante.
au pire cas est C(n) = O(n2); elle correspond le cas ou le tableau est trié d'une
manière décroissante.
Complexité
manière décroissante.
Dans cette exercice, nous allons utiliser la fonction int nbOcc(Tableau T, Entier d,f, Entier x) qui
permet de retourner le nombre d'occurrences de x dans l'intervalle d'indices [d, f] du tableau T.
Cette fonction est de complexité O(f-d+1).
3. La fonction suivante retourne l'élément qui a le plus grand nombre d'occurrences dans T ainsi
que son nombre d'occurrences.
(Entier, Entier) PlusGrandOcc(Tableau T, Entier d,f) //d : premier indice, f : dernier indice
Debut
Si d==f alors retourner (T[d], 1) FinSi;
(x, nbx )= PlusGrandOcc(T, d+1, f);
Si T[d]==x alors retourner (x, nbx+1) FinSi.
nbo = nbOcc(T, d , f, T[d]) ;
Si nbx nbo alors retourner (x, nbx) FinSi
retourner (T[d], nbo);
Fin.
Appel de la fonction : PlusGrandOcc(T, 1, n).
Complexité : C(n) = C(n-1) + an + cste. => C(n)= O(n2)
Complexité au meilleur des cas :C(n) = 2C(n/2) + an + cste. => C(n)= O(n*log2(n)).
Complexité au pire des cas : C(n) = C(n-1) + an + cste. => C(n)= O(n2)
Exemple : 1 2 11 9 8 7 3 5 1
1. T[0..n-1] d'entiers
Entier Pic(Tableau T, Entier n)
Début
T[-1] = - ; T[n] = - ;
Pour(i=0; i<n; i++) faire
Si (T[i] T[i-1] && T[i] T[i+1]) alors retourner i FinSi
FinPour
retourner -1;
Fin
Complexité : C(n)= O(n)