Compte Rendu (TAARABTI Imane) FINAL2
Compte Rendu (TAARABTI Imane) FINAL2
Compte Rendu (TAARABTI Imane) FINAL2
2020/2021
Sommaire
Liste des Figures..............................................................................................................................3
Introduction......................................................................................................................................5
I. Le langage python.................................................................................................................5
1. Défintion...........................................................................................................................5
2. Utilisation de python.........................................................................................................5
3. Module de temps sous Python..........................................................................................5
II. Travaux Pratiques.................................................................................................................7
1. Puissance...........................................................................................................................7
2. La différence entre tri par insertion et tri à bulles (Insertion sort vs Bubble Sort).........14
A. Tri à bulles......................................................................................................................14
B. Tri par insertion...............................................................................................................15
C. La rapidité:.....................................................................................................................16
Conclusion.....................................................................................................................................17
2
Liste des Figures
Les instruction suivantes permettent, en faisant appeler la fonction time() (ou clock()) du module
time sous python, de retourner et d’afficher le temps d’exécution (la complexité temporelle) d’un
programme en secondes et du type float.
I. Le langage python :
1. Défintion
C'est un langage objet, de nouvelle génération, pseudo-interprété, portable. Il est libre, ouvert,
gratuit. De nombreuses “ bibliothèques ” sont disponibles sur internet. L'auteur de ce langage est
Guido van Rossum. Son aspect proche de l'algorithmique fait qu'il a été choisi en de nombreux
endroits pour l'enseignement. Mais Python est aussi utilisé dans le « monde réel » pour des
applications : moteur de recherche Google, Youtube, laboratoires de recherche (CNRS, INRIA,
Universités…), agences spatiales (NASA…), jeux vidéo, cinéma, fnance, etc. Il est entre autres
utilisé dans de nombreuses entreprises pour de l'informatique d'instrumentation (collecte et
analyse de données).
2. Utilisation de python
On peut utiliser python depuis une fenêtre de terminal (ou console) ou bien, on peut passer par
un environnement de développement (IDE - Interactive Développement Environnent) c'est à dire
un éditeur de texte muni de différentes fonctions pour faciliter la programmation.
Le module time Python offre la possibilité de lire, Représenter et réinitialiser les informations de
temps de nombreuses façons.
a. Temps temps() :
6
II. Travaux Pratiques :
1. Puissance :
time() :
La complexité de T1(n) :
Code :
La complexité de T2(n) :
On observe que le temps d’exécution de T1(n) est très grand par rapport à T2(n).
Q4 : Que fait programme à chaque passage pour exécuter le cas : x=3 et n=11 :
Puissance1(3,11) Puissance2(3,11)
Passage1 3*311-1 3* 311/2*311/2
Passage2 3*310-1 3*3*35/2*3*35/2*35/2
Passage3 3*39-1 3* 3*3*32/2*32/2*3*32/2*32/2
*3*3*32/2*32/2*3*32/2*32/2
Passage4 3*38-1 3*3*3*3*3 *31/2*3*31/2*31/2*3*3*31/2*31/2*3*31/2*
1/2
31/2*3*3*3*31/231/2*3*31/2
*31/2*3*3*31/2*31/2*3*31/2*31/2
Passage5 3*37-1
Passage6 3*36-1
Passage7 3*35-1
Passage8 3*34-1
Passage9 3*33-1
Passage10 3*32-1
Passage11 3*31-1
Passage12 3*31-0
Q7. Soit x=10, mesurez pour chaque programme le temps de calcul pour les valeurs de n
ci-dessous :
Programme de O(n)
Exemple de n=10 :
Figure 10:le temps de calcul pourn=10(O(n)).
Programme de O (log(n)) :
Exemple de n=1 :
Les résultats dépendent de l'ordinateur sur lequel ces fonctions sont testées.
Q8 On Tracer sous Excel les deux courbes de complexités associées à chaque algorithme :
La courbe de Complexité :
Q9. On remarque que : les courbes de 2ème programme (puissance 2) est presque
linéaire et plus grand ou majore le 1er programme (puissance 1).
2. La différence entre tri par insertion et tri à bulles (Insertion sort vs Bubble Sort) :
A.Tri à bulles :
Le tri à bulles est un algorithme de tri très simple dont le principe est de faire remonter à
chaque étape le plus grand élément du tableau à trier, comme les bulles d’air remontent à la
surface de l’eau (d’où le nom de l’algorithme).
Figure 12:programme tri à bulles.
Le principe est très simple : c’est l’algorithme qu’utilise naturellement l’être humain pour
trier des objets comme par exemple des cartes à jouer.
On procède en plusieurs étapes. On suppose qu’à l’étape ii, les éléments d’indice 0 à i−1 du
tableau sont déjà triés et on insère alors l’élément d’indice ii à sa place parmi les éléments
précédents.
L’algorithme du tri par insertion n’est utile que pour les petits éléments, car elle nécessite
plus de temps pour trier un grand nombre d’éléments.
Figure 13: programme tri par insertion.
C. La rapidité:
le tri par insertion est deux fois plus rapide que le tri par bulles.
Figure 14:: programme tri par à bulles et tri par insertion(temps de réponse)..
CONCLUSION
Ce travail nous a permis d’appliquer une diversité d’outil que nous avons déjà eu l’occasion de
voir dans le cours, ce qui nous a permis d’évaluer nos acquis théoriques et avoir ’expérience dans
la conception d’algorithmes précisément le calcul de complexité.