Définition :Analyser un algorithme revient à prévoir les ressources nécessaires à cet algorithme.
Les ressources peuvent être entre autres :
- la mémoire utilisée,
- la largeur de bande,
- les portes logiques utilisées...
- le plus souvent le temps de calcul ou d'exécution.
Pour analyser un algorithme, il faut choisir un modèle de machine ;le modèle que nous utiliserons ici est la machine de Von Neumann, machine à accès aléatoire (RAM) et à processus unique.
Les instructions s'exécutent sur cette machine de façon séquentielle, c'est-à-dire les unes après les autres sans opérations simultanées.
[...] Analyse des algorithmes Introduction Définition :Analyser un algorithme revient à prévoir les ressources nécessaires à cet algorithme. Les ressources peuvent être entre autres : - la mémoire utilisée - la largeur de bande - les portes logiques utilisées . - le plus souvent le temps de calcul ou d'exécution Pour analyser un algorithme, il faut choisir un modèle de machine ;le modèle que nous utiliserons ici est la machine de Von Neumann, machine à accès aléatoire (RAM) et à processus unique. [...]
[...] //création d'une structure S_nœud pour un nœud d'une liste chaînée //l'élément dans un nœud est de type T_element template struct S_nœud { S_nœud ( ) { Suivant = NULL //constructeur T_element element ; //donnée stockée dans le nœud S_nœud *suivant ; //pointeur sur le nœud suivant } ; //classe liste générique template class C_liste { S_nœud *premier ; //tête S_nœud *dernier ; //queue S_nœud *courant ; //nœud courant int taille : //nombre d'éléments dans la liste inline void init ( ) { premier = dernier = courant = NULL ; taille = 0 ; } . public : C_liste ( ) {init ( ) //constructeur d'une liste vide ~C_liste ( ) ; void menage ( ) ; //vide la liste et libère tous les nœuds C_liste &operator = (const C_liste ;//surcharge de l'affectation } ; Note :les insertions et suppressions se font par rapport au pointeur “courant”. (voir fichier de programme). [...]
[...] 1)Exemple : Tri par insertion d'un tableau Entrée : tableau qui contient la séquence à trier nombre d'éléments du tableau Sortie : tableau trié Appel : Tri_insertion Exemple : Algo : Début Pour j ( 2 à n faire un tableau qui contient 1 élément est trié Clé ( insertion de dans la séquence triée A[1 j i ( j 1 Tant que i > 0 et > clé ( i ( i 1 Fin tant que ( clé Fin pour Fin Deux lignes différentes peuvent prendre des temps différents, mais chaque exécution de la ligne i prend le temps ci. Où tj est le nombre de fois que le test de la boucle tant que est exécuté pour une valeur de j fixée. La complexité de l'algorithme est donc : T = c1n + c2 + c3 + c4 + c5 + c6 + c7 La nature de l'entrée peut influencer le temps d'exécution d'un algorithme. [...]
[...] + a1n + a0 alors f = O Preuve : Pour n ( 1 Donc f = ( Théorème 3 :si f = amnm + . + a1n + a0 alors f = ( Preuve :laissée en exercice Théorème 4 :si f = amnm + . + a1n + a0 alors f = ( Preuve :utiliser les théorèmes précédents. Remarque = O signifie que g est une borne supérieure de la valeur de f pour tout n ( n0. Cela ne signifie rien sur la qualité de cette limite supérieure. [...]
[...] Ainsi, on a bien = O ou même = O On considère que pour que f = O ait un sens, g doit être une fonction aussi petite que possible telle que f = O Par exemple :3n2 + 6n + 2 = O (n2). Cette remarque s'applique également à avec dans ce cas, une fonction g aussi grande que possible. 2)Exemple 1)Tri fusion. Le tri fusion fait partie de la famille des algorithmes diviser pour régner. Ces algorithmes divisent le problème en plusieurs sous problèmes similaires au problème initial mais de plus petite taille, résolvent ces sous problèmes de façon récursive et combinent les solutions pour trouver une solution au problème initial. [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture