1 Révision Complexité algorithmique Algorithmes de Tri Les arbres Récap, et évaluation
Chapitre 01_ALCO Pr F. BELALA 2
C'est quoi un Algorithme ? Comment exprime t-on un algorithme? Différence entre un algorithme et un programme? Pourquoi utilise t-on des sous programmes? Différence entre fonction et procédure? Pourquoi dit-on qu'une fonction/procédure est récursive? Comment se déroule un appel récursif? A quoi sert une structure de données? Comment exprime t-on une structure de données? Exemples de structures de données. Chapitre 01_ALCO Pr F. BELALA 3 Un algorithme est une suite finie et non-ambiguë d’opérations ou d’instructions permettant de résoudre un problème,
Un problème algorithmique est souvent formulé comme la
transformation d’un ensemble de valeurs, d’entrée, en un nouvel ensemble de valeurs, de sortie,
Un algorithme peut être spécifié de différentes manières :
• en langage naturel, • graphiquement, • en pseudo-code, • par un programme écrit dans un langage informatique
Chapitre 01_ALCO Pr F. BELALA 4
Utiliser le concept de ”conception modulaire” des algorithmes consiste à construire des algorithmes constitués de plusieurs sous algorithmes (ou modules). Chaque sous algorithme résoud un sous problème; il reçoit des données et transmet des résultats. Ceci permet l’utilisation répétitive d’un même module en différents points de l’algorithme. ◦ Déclaration d’une fonction: Partie Déclaration ◦ Utilisation de la fonction: Partie Actions A la différence des fonctions, les procédures ne calculent pas un résultat; elles permettent de modifier l’état du corps de l’algorithme qui les appelle. En effet, les effets de bord (modification des valeurs en mémoire, entrées-sorties avec les dispositifs externes) sont généralement produites par les procédures,
Passage de paramètres (formels, effectifs)
Evaluation d’un appel récursif Déroulement d’un appel récursif
Chapitre 01_ALCO Pr F. BELALA 5
Chapitre 01_ALCO Pr F. BELALA 6 Moyen pour stocker et organiser les données pour en faciliter l’accès et la modification. Une structure de données regroupe : • un certain nombre de données à gérer, et • un ensemble d’opérations pouvant être appliquées pour ces données Type Abstrait de Données (TAD): c’est un moyen de définition ou spécification de données, il spécifie précisément : • la nature et les propriétés des données • les modalités d’utilisation des opérations pouvant être effectuées indépedement de toute représentation interne de ces données ainsi que la mise en oeuvre des opérations. En général, un TAD admet différentes implémentations (plusieurs représentations possibles des données, plusieurs algorithmes pour les opérations).
1. Ecrire une fonction/procédure itérative qui calcule la somme des éléments d’une liste de N nombres réels. 2. Réécrire la même fonction/procédure de manière récursive. 3. Ecrire un algorithme qui lit et rempli une pile de N nombres entiers, ensuite teste si une pile est triée par ordre croissant ou non.