Académique Documents
Professionnel Documents
Culture Documents
S,i,x :enitier
Afficher(‘saisir l’ entier’) (1)
Lire(x) (1)
S←1 (1)
Pour i←1 ; i<=x ;i++ nfois
S←S*i (2)
Finpour
Afficher(‘factoriel de ‘,x,’est = ‘,S) (1)
Fin
T(n) = 3 + 2n +1
T(n) = 2n + 4
2n + 4 < 3f(n) alors T(n)=Ὅf(n)
Exercice
Ecris un algorithme qui donne le plus grand de deux nombre entrer au clavier
par l’ utilisateur calculer
Exercice 2
Soit un tableau de taille n et un tableau de taille m on desire rechercher dans le
tableau de taille m une valeur contenu dans le tableau de taille n . Ecris un
algorithme qui permet de réaliser cela , calculer le coût de cet algorithme en
déterminer la complexiter
Exercice correction
Debut
x,y :entier
afficher(‘entrer la valeur de la valeur du premier nombre’ (1)
lire(x) (1)
afficher(‘entrer la valeur du deuxième nombre’) (1)
lire(y) (1)
si x< y alors
afficher(x,‘ est le plus grand nombre’) (1)
sinon si x == y alors
afficher(x,‘ = ‘ , y) (1)
sinon
afficher(y,’est le plus grand nombre’) (1)
Finsi
Fin
Exercice 2
Debut
Tab_m[m] , Tab_n[n] : entier T[n] = (n x 1 + 1 + 3 )n + 3 +1
= (n+4)n + 4
T[n] = (n+4)n + 4
T[n] = n² + 4n + 4
partir d’ un certain rang
T[n] ≤ 2n²
T[n] ≤ 2f(n²)
Alors T[n] est de complexité
quadratique
7-Les arbres
Les arbres sont les types abstraits utilisée en programmation informatique pour
les besoins de structures hiérarchique de données
On peut citer comme exemple l’arborescence des dossiers dans un système de
ficher des système d’exploitation
Les expressions arithmétiques qui peuvent être représenter par des arbres
étiquetés par des opérateurs des constantes et des variables
A - Définition et terminologies
Un arbre est constitué de nœud relier entre eux par des arrêts
1
arrêt
2 :1 2.3
2.2
noeud
3.4 3.6
3.5
3.2 3.3
3.1
Remarque la finalité d’ un arbre est le plus souvent de structuré les donnée
Chaque nœud peut être identifer par une étiquete l’ étiquettt réprésente
directement la valeur du nœud ou bien une clée associé à une donné
8-Arbre binaire
Les arbres binaire est un cas particulier d’ arbre ou chaque nœud possède au
maximum deux fils
Les deux fils sont classée nœud gauche et nœud droit et ne sont pas
interchangeable
Il est possible d’ avoir des arbres binaire de même taille mais de forme
différente on distingue :
- Un arbre parfait : tout les nœud on exactement de fils sauf les feuilles
- Un arbre presque complet : tout ses feuilles on la même profondeur et
les feuilles manquantes sont toute à droites
- Un arbre équilibré : est un arbre ou toute ses feuilles sont à la même
profondeur
- Un arbre piliforme encore appeler arbre dégénéré est un arbre ou tout
les nœud possède un unique fils
- Un arbre complet : c’ est un arbre binaire ou tout les nœud on
exactement deux fils sauf les feuilles et ces feuilles on même profondeur
La hauteur d’ un arbre philiforme de taille n est égale à n-1
La hauteur d’ un arbre complet de taille n est égale à la partie entière
entière du logarithme à base 2 de n
L = E(log₂(n))
Un arbre philiforme et un arbre complet etant les deux cas extrème on peut
encadrer la hauteur h d’ un arbre binaire quelconque par E(log₂(n))≤n≤n-1
De la même manière on peut encadrer la taille n d’ un arbre bianair
quelconque que l’ on peut obtenir pour une hauteur h donnée par
h + 1 ≤ n ≤2h+ 1 – 1 Pour un arbre de hauteur 2 on aura 3noeud et pour un
arbre philiforme et un arbre complet on aura 7 nœud
9-Implémentation
En utilisation UML on peut établir le diagramme de classe suivant
Racine
nœud
Noeud
gauch
nœud droit
Une instance d’ arbre binaire peut être définis par un objet de type arbre
possédent une racine de type nœud chaque nœud possède quant à lui
0(feuilles) ou deux fils de type nœud(fils gauche et fils droit) Language utilisant
la gestion des droit (Java,python,c++)
Exemple
Classe Arbre :
Def __iniit__(self,racine = None) :(déclaration de constricteur)
Self.racine = racine
Classe Nœud :
Def __init__(self,v,g= None ,d=None)
Self.g = g
Self.d = d
Self.v = v
ng = Noeud(3)
nd = Noeud(4)
ng = Noeud(1,ng,nd)(c’ est un noeud dont l ‘ etiquette est 1 et ng et nd sont ses
noeud fils)
nd = Noeud(10)
nd = Noeud(6,ng,nd)
ng = Noeud(9)
ng= Noeud(15,d = nd)
arbre = Arbre(Noeud(5,ng,nd))
Fintantque
Return true
Fin fonction