La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

INFOR 101 Chapitre 3 Marianne Morris. INFOR 101 Algorithmes et Pseudocode Programmation en C++ Architecture de lordinateur Langage assembleur Intro aux.

Présentations similaires


Présentation au sujet: "INFOR 101 Chapitre 3 Marianne Morris. INFOR 101 Algorithmes et Pseudocode Programmation en C++ Architecture de lordinateur Langage assembleur Intro aux."— Transcription de la présentation:

1 INFOR 101 Chapitre 3 Marianne Morris

2 INFOR 101 Algorithmes et Pseudocode Programmation en C++ Architecture de lordinateur Langage assembleur Intro aux réseaux et à lintelligence artificielle

3 Révision du chapitre 2 Algorithmes Pseudocode Opérations en séquence Opérations de condition Opérations itératives

4 Révision du chapitre 2 Une fois quon a construit un algorithme, on peut utiliser celui-ci pour développer des algorithmes plus sophistiqués Librairie Une collection dalgorithmes utiles Un instrument important pour le développement dalgorithmes

5 Révision du chapitre 2 Méthode descendante (top-down) Pour résoudre des problèmes compliqués Brouillon de lalgorithme pour réfléchir aux opérations de haut niveau Élaborer les opérations de haut niveau après avoir développé un schéma brouillon de lalgorithme Répéter jusquà ce que toutes les opérations de haut niveau soient développées à partir dopérations plus simples

6 Révision du chapitre 2 Développement dalgorithmes Corrects et efficaces Plusieurs étapes inclues pseudocode, brouillon et copies plus évoluées! Utiliser des méthodes descendantes (top-down) Utilisation du pseudocode Pour aider à développer des algorithmes Lisible, non ambigu, facile à analyser

7 Exercice 2.1: Exponentiel Développez un algorithme pour calculer la valeur exponentielle dun nombre donné Demandez à lutilisateur dentrer deux valeurs: le nombre et la puissance Utiliser une boucle dans votre algorithme… Imprimez à lécran de lordinateur le résultat de lopération exponentielle

8 Solution de lexercice 2.1: Exponentiel Get values for n and x while (x < 0) { output Please enter x 0 read x } If (n == 0) then set result to 0 else if (n == 1 or x == 0) then set result to 1 else { set result to 1 set count to 1 while (count x) result = result * n } Output the value of result

9 Exercice 2: Recherche et pattern-matching Trouver si la séquence de lettres existe dans une liste de lettres alphabétiques Séquence de lettres: « abbd » Liste contient un nombre N de lettres Algorithme: Lire N à lécran Rechercher la liste en utilisant une boucle et des conditions « if… else » Imprimer « found » ou « not found » à lécran

10 Figure 2.16 Pattern-Matching Algorithm

11 Chapitre 3: Lefficacité des algorithmes Objectifs: Attributs des algorithmes Mesurer lefficacité des algorithmes Analyses des algorithmes

12 Introduction Caractéristiques importantes des algorithmes: Corrects Faciles à comprendre Élégants Efficaces

13 Attributs des algorithmes Corrects Est-ce que lalgorithme résout le problème pour lequel il a été construit? Est-ce quil résout le problème correctement? Faciles à comprendre Est-ce que lalgorithme est lisible et facile à modifier? Important pour la réécriture de programmes!

14 Attributs des algorithmes Élégants Est-ce que lalgorithme est intelligent, bien écrit et sophistiqué? Attention: conflit possible entre élégance et facilité à comprendre Efficaces Combien de temps et despace lalgorithme prend quand il est exécuté? Attribut très important!

15 Mesurer lefficacité des algorithmes Analyse des algorithmes Étudier lefficacité de plusieurs algorithmes Mesurer lefficacité en tant que fonction qui relie le montant des données au temps et à lespace que lalgorithme utilise Étudier le meilleur scénario, le pire scénario et le scénario typique La notation représente lordre de magnitude de la fonction de lefficacité

16 Lordre de magnitude: Ordre n Quand n est grand, leffet des coefficients et des termes dordre plus petit devient plus faible Ex: n/2, n, 2n, 3n n Toutes fonctions linéaires sont équivalentes Lordre de magnitude n Les fonctions varient en tant que c x n (n)

17 Figure 3.4 Work = cn for Various Values of c

18 Recherche en séquence Chercher un nom NAME dans une liste de n noms Commencer au début de la liste et comparer NAME à chaque entrée dans la liste jusquà ce quon trouve la bonne entrée

19 Figure 3.1 Sequential Search Algorithm

20 Recherche en séquence Analyse de lefficacité de lalgorithme pour une liste de n entrées Meilleur scénario: NAME est le premier dans la liste Une seule comparaison (1)

21 Recherche en séquence Analyse defficacité – liste de n entrées Pire scénario: NAME est le dernier dans la liste NAME nest pas dans la liste n comparaisons (n) Scénario typique: À peu près n/2 comparaisons (n)

22 Utiliser lespace efficacement Lalgorithme ne devrait pas utiliser plus despace (mémoire pour stockage) que lespace occupé par les données originales

23 Selection sort Réarranger une séquence de n valeurs pour quelles soient en ordre Lalgorithme Chercher la plus grande valeur dans une section de la liste Déplacer cette valeur dans une position plus correcte dans la section déjà triée de la liste Utiliser lalgorithme « Find Largest »

24 Figure 3.6 Selection Sort Algorithm

25 Selection sort Lalgorithme exécute Find Largest n fois Chaque fois avec une plus petite liste Coût = n-1 + (n-2) + … = n(n-1)/2 Find Largest fait m-1 comparaisons pour une liste de m valeurs

26 Selection sort Efficacité temps: Comparaisons: n(n-1)/2 Échanges: n (swap largest en sa position) Ordre: (n 2 ), meilleur et pire scénarios Efficacité espace: Espace pour la séquence dentrées et un nombre constant de variables locales

27 Lordre de magnitude: Ordre n 2 Toutes fonctions avec termes dordre plus élevé cn 2 sont plus ou moins équivalentes (ont des formes similaires) Un algorithme qui fait des opérations de cn 2 (où c est une constante) est donc dordre n 2 ou bien (n 2 )

28 Lordre de magnitude: Ordre n 2 (n 2 ) > (n) peu importe les constantes sil y en a Un algorithme qui exécute à (n) est bien plus efficace quun autre à (n 2 )

29 Figure 3.10 Work = cn 2 for Various Values of c

30 Figure 3.11 A Comparison of n and n 2

31 Binary Search Liste déjà en ordre Chercher NAME en comparant par lélément au milieu Restreindre la recherche à la moitié inférieure ou supérieure de la liste si on na pas encore trouvé lentrée voulue Chaque passe élimine la moitié de la liste

32 Figure 3.18 Binary Search Algorithm (list must be sorted)

33 Binary Search Efficacité: Meilleur scénario: Une seule comparaison (1) Pire scénario: lg n comparaisons lg 2 n : le nombre n peut être divisé par 2 avant datteindre 1 (lg n)

34 Binary Search Compromis Recherche en séquence (Sequential Search) Lent mais bon pour des données non ordonnées Binary Search Plus rapide mais la liste doit être en ordre

35 Figure 3.21 A Comparison of n and lg n

36 Pattern Matching Mesurer deux données: m: la longueur de la string du motif n: la longueur du texte Lunité de travail Comparaison dune lettre du motif avec une lettre du texte

37 Figure 2.16 Pattern-Matching Algorithm

38 Pattern Matching Efficacité: Meilleur scénario: Motif na pas de correspondant n - m + 1 comparaisons (n) Pire scénario: Le motif a un correspondant à chaque point (m -1)(n - m + 1) comparaisons (m x n)

39 Figure 3.22 Order-of-Magnitude Time Efficiency Summary

40 Figure 3.25 Comparisons of lg n, n, n 2, and 2 n

41 Figure 3.27 A Comparison of Four Orders of Magnitude

42 Lectures Vous êtes encouragé(e)s de lire chapitre 3 surtout les algorithmes dans la section (aussi diapos # 43-45) pour enrichir vos connaissances et pour pratiquer pour lexamen…

43 Figure 3.14 The Shuffle-Left Algorithm for Data Cleanup

44 Figure 3.15 The Copy-Over Algorithm for Data Cleanup

45 Figure 3.16 The Converging-Pointers Algorithm for Data Cleanup


Télécharger ppt "INFOR 101 Chapitre 3 Marianne Morris. INFOR 101 Algorithmes et Pseudocode Programmation en C++ Architecture de lordinateur Langage assembleur Intro aux."

Présentations similaires


Annonces Google