L'exécution d'un programme nécessite l'utilisation des ressources de l'ordinateur : temps de calcul pour exécuter les opérations, et l'occupation de la.

Slides:



Advertisements
Présentations similaires
Introduction a L’algorithme
Advertisements

Tris.
Initiation à la programmation et algorithmique cours 2
L’algorithmique, les séquences.
Structures de données et complexité
Introduction à l’Algorithmique
Calculs de complexité d'algorithmes
DECLARATION DE VARIABLES
But de l’exercice 3.1 PREPARER UN ALGORITHME QUI EFFECTUE DEUX TACHES IMPORTANTES : PREMIERE TACHE : Grâce à la fonction aléatoire, un nombre compris entre.
But de lexercice 3.1 PREPARER UN ALGORITHME QUI EFFECTUE DEUX TACHES IMPORTANTES : PREMIERE TACHE : Grâce à la fonction aléatoire, un nombre compris entre.
Algorithmique Résume.
1 UMLV 1. Introduction 2. Hachage ouvert 3. Hachage fermé 4. Implémentation des fonctions Méthodes de hachage.
1 Révisions. 2 Tableaux non contraints Déclaration du type : type Tvecteur = tableau ( intervalle dentiers) de entiers type Tvecteur is array (integer.
8. Les tableaux P. Costamagna – ISEN N1.
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
Initiation à la programmation et algorithmique cours 3
Utilisation des tableaux
Chapitre IV. Structures linéaires (piles, files, listes chaînées)
Les bases de l’Algorithmique
Points importants de la semaine Les fonctions. La portée. La passage par copie. Les tableaux.
Références Bibliographiques
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Structures de données linéaires
Partie 1 Etude de l'existant
8PRO100 Éléments de programmation Comment faire prendre une décision à un ordinateur?
Les éléments de base de l’algorithmique
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Python La structure itérative
Methode de Tri efficace
Algorithmique et Programmation
FICHIERS : Définition : Algorithme général:
Analyse d’Algorithmes
Mesurer l’efficacité des algorithmes
INF1101 Algorithmes et structures de données
Semaine #1 INF135 par Frédérick Henri.
8PRO107 Éléments de programmation
Efficacité des algorithmes
Efficacité des algorithmes
8PRO100 Éléments de programmation Les types composés.
Les Algorithmes de Tri Introduction Tri par Sélection

Structures de données IFT-10541
1 Notations Asymptotiques Et Complexité Notations asymptotiques : 0 et  Complexité des algorithmes Exemples de calcul de complexité.
ALGORITHME DE TRI Le tri par insertion.
Chapitre 6 Les traitements avancés
5 – Application: gestion de polynômes
Algorithmes de tri et de recherche
Cours 4 - Trois algorithmes de recherche dans un tableau
Structures de contrôle
Structures simples et tableaux Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
1 1 Huitième journée Quelques algorithmes. 2 Définition Description des tâches pour que celles-ci soient aisément programmables Différent d’une méthode.
Cours LCS N°4 Présenté par Mr: LALLALI
Introduction et Généralités sur l’Algorithmique
MATHÉMATIQUES DISCRÈTES Chapitre 2 (section 2) François Meunier DMI.
2005/2006 Structures de Données Introduction à la complexité des algorithmes.
Pour les boucles FOR on a fait intervenir la boucles TANT QUE équivalentes dont on connaît calculer le temps d’exécution. Toutes le procédures de comptage.
Module algorithmique et programmation
Cours 5 - Trois algorithmes de tri d'un tableau
8PRO107 Éléments de programmation Les tableaux. Étude de cas 1 Description du problème : Lire une liste d’entiers et l’afficher d’abord dans le même ordre.
Algorithmique Tableaux de données
Structures de données IFT-2000
CSI2510 Structures de données et algorithmes Analyse des algorithmes
Objets et Actions Élémentaires.
Seconde 8 Module 7 M. FELT 03/11/ Module 7: Algorithmique #2  Objectifs:  AlgoBox.  Définition d’un algorithme.  Affectation de variable. 
L E C ORPS D ’ UN A LGORITHME / P ROGRAMME – L A PARTIE I NSTRUCTION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie.
Introduction à l’Informatique chap 3 Licence SPI Mme Delmotte.
ALGORITHME ET PROGRAMMATION RÉVISION Informatique et Sciences du Numérique.
Complexité algorithmique
H. Richard – Elodie Laine – Initiation à la programmation impérative et algorithmique Cours 5 – Tableaux Largement inspiré des cours.
Tableaux : Algorithmes de recherches
Transcription de la présentation:

L'exécution d'un programme nécessite l'utilisation des ressources de l'ordinateur : temps de calcul pour exécuter les opérations, et l'occupation de la mémoire pour contenir et manipuler le programme et ses données. L'objet de l'analyse de la complexité est de quantifier les deux grandeurs physiques "temps d'exécution" et "place mémoire", dans le but de comparer entre eux différents algorithmes qui résolvent le même problème. 1

Il faut déterminer quelle mesure utiliser pour calculer ces deux quantités. pour le temps : le nombre d'opérations effectuées et le temps nécessaire pour chaque opération. pour la place : le nombre d'instructions et le nombre des données du programme, avec le nombre de mots mémoire nécessaires pour stocker chacune d'entre elles, ainsi que le nombre de mots mémoire supplémentaires pour la manipulation des données. Pour la complexité en temps le plus important c'est le nombre des opérations élémentaires, la notion de complexité devient importante quand la taille des données devient très grande. 2

Règle de calcul de complexité des expressions a)n 3 + n 2 + n 3 *log 2 n n 3 *log 2 n domine d'où la complexité est O(n 3 *log 2 n ) b) n + 4n + 4 n 4 n domine, d'où la complexité est O(4 n ) 3

Complexité constante O(1) Algorithme 72 : somme_suite (n : entier): entier Donnée : entier n Résultat : entier Variable locale : entier som début som  n * (n+1) div 2 retourner som fin Le temps ne dépend pas de n. 4

5 Complexité linéaire O(n) Algorithme 73 : recherche_tableau (tab: tableau, n : entier, but: T): booléen Donnée : but de type T Donnée : le tableau tab d’éléments de type T Donnée : la taille n du tableau tab Résultat : booléen Variable locale : booléen trouve qui indique si la valeur a été trouvé Variable locale : entier i, indice du tableau début trouve  faux i  1 TANT QUE non trouve et i<= n SI tab[i] = but ALORS trouve  vrai SINON i  i + 1 fin retourner trouve Fin Dans le pire des cas les opérations à l'intérieur de TANT QUE sont exécutées n fois.

6 Complexité logarithmique O(log n) Recherche dichotomique dans un tableau trié Algorithme 74 : recherche_tableau_dicho (tab: tableau, n : entier, but: T): booléen Donnée : but de type T Donnée : le tableau tab d’éléments de type T Donnée : la taille n du tableau tab Résultat : booléen Variable locale : booléen trouve qui indique si la valeur a été trouvé Variable locale : déb l’indice du premier élément du sous-tableau traité Variable locale : fin l’indice du dernier élément du sous-tableau traité Variable locale : milieu l’indice du milieu du sous-tableau traité

début trouve  faux déb  1 fin  n TANT QUE non trouve et déb <= fin FAIRE milieu  (début + fin) div 2 SI but < tab[milieu] ALORS fin  milieu – 1 SINON SI but > tab[milieu] ALORS début  milieu + 1 SINON trouve  vrai fin retourner trouve fin 7

Ex. tab = (10, 12, 13, 15, 16, 19, 21, 25, 31) but = milieu = 5 tab[5]= 16>15 2. fin = 4 milieu = 2 tab[2] = 12 < début = 3 milieu = 3 tab[3] = 13 <15 4. début = 4 milieu = 4 tab[4]=15 8

but = milieu = 5 tab[5]= 16<24 2. début = 6 milieu = 7 tab[7] = 21<24 3. début = 8 milieu = 8 tab[8] = 25 >24 4. fin = 7  fin < début 9

Complexité polynomiale quadratique O(n 2 ) Tri à bulles Algorithme 75 : tri_a_bulles (tab: tableau, n : entier): booléen Donnée : taille du tableau n Donnée modifiée : tableau tab d’éléments de type T Variable locale : booléen ech qui indique si un échange a eu lieu Variable locale : i indice dans le tableu Variable locale : k compteur des parcours Variable locale : tmp de type T permettant de faire un échange 10

début ech  vrai k  -1 TANT QUE k < n et ech FAIRE k  k + 1 ech  faux POUR i = 1 à n – k – 1 FAIRE SI tab[i] < tab[i + 1] temp  tab[i] tab[i]  tab[i+1] tab[i+1]  temp ech  vrai fin 11