Académique Documents
Professionnel Documents
Culture Documents
Cours Algorithmique
Master1
2021-2022
L
OBJECTIFS
G
Apprendre les concepts de l'algorithmique, et être capable de mettre en
œuvre ces concepts pour analyser des problèmes et écrire les O
programmes correspondants. Le langage de programmation d’application
est le langage Java
PRE-REQUIS
Le bon déroulement de ce cours suppose la maîtrise des notions de base
de l’algorithmique. Une bonne connaissance de la programmation en
langage C est un atout .
O
❑Chapitre 2 : Complexité
❑Chapitre 5 : Tris
❑Chapitre 6 : Arbres
❑Chapitre 7 : Graphes
NB Heures 45 Heures
1 Généralités O
3 Procédures récursives
4 Algorithmes DPR
6 Questions/Réponses de révision
Procedure recursive(paramètre)
//*Objectifs …*/
//*Paramètres en entrée ...*/
//* Paramètre en sortie…*/
Début
Si condition_d’arrêt alors
Instruction du point d’arrêt
Sinon
Debut
…
recursive (paramètres changés) //appel recursive
…
Fin
FinSi
Fin
NB : une pile est une zone mémoire réservée à chaque programme, il a pour rôle de
stocker les variables locales et les paramètres d’une procédure.
Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 9
A
3 Procédures récursives
L
Toute procédure récursive comporte une instruction ou blocs d’instruction nommée «point
d’arrêt », qui indique que le reste des instructions ne doit plus être exécuté. G
Var
f : Fichier
Employe : Temploye;
En Java, ces trois flux sont manipulés par les trois objets suivants : out, in et err. Ces
trois objets sont créés automatiquement lorsque le programme démarre.
➢Sortie standard :
System.out.println('‘<…> '‘);
❑ Le paquetage java.io de l’API de Java est celui qui traite des entrées-sorties. Il y a
essentiellement quatre classes « mères », abstraites, pour traiter les flux de données.
Ces quatre classes héritent directement de la classe Object. Il s’agit :
❑Il ne serait pas très pratique de ne disposer que des fonctionnalités offertes par les
classes d’extraction; il est par exemple utile de demander d’écrire un double, de lire
une ligne de caractères, etc. D’autres classes font appel aux classes d’extraction
pour ajouter des fonctionnalités; nous les appellerons « classes de fonctionnalités ».
Une telle composition d'une instance de l'une de ces deux classes avec une instance
de la classe de fonctionnalités PrintWriter permet de disposer de multiples
fonctionnalités ; par exemple, la classe PrintWriter dispose d'une méthode println(int i)
permettant d'écrire un int sous forme d'une chaîne de caractères; cette méthode
effectue grosso modo :
String s = String.valueOf(i);
sortie.write(s, 0, s.length());
sortie est l'instance de la classe Writer qui est reçue en argument par le constructeur ;
Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 36
A
5 Déclaration d’un fichier -10-
L
La méthode write(String s, int depart, int longueur) est une méthode abstraite de la
classe Writer définie par les classes FileWriter et StringWriter, qui permet d'écrire une G
portion de chaîne de caractères dans leurs destinations respectives.
O
Ainsi, si i est de type int
G
1 Introduction
O
2 Vue générale de l’évaluation
3 Notation LANDAU
4 Notation THETA
6 Quelques Applications
7 Equations récursives
Le fait qu’un algorithme produise un résultat ne suffit pas, on doit toujours penser à
sa complexité. Il faut prendre en compte son temps d’exécution et l’espace occupé
Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 44
A
1 Introduction
L
Pourquoi doit-on s’intéresser à la complexité ?
Soit à écrire une algorithme pour déterminer si un nombre n est premier ou G
non ? Deux personnes proposent chacune une solution
O
Le fait qu’un algorithme produise un résultat ne suffit pas, on doit toujours penser à
sa complexité. Il faut prendre en compte son temps d’exécution et l’espace occupé
Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 45
A
1 Introduction
L
Pourquoi doit-on s’intéresser à la complexité ?
Soit à écrire une algorithme pour déterminer si un nombre n est premier ou G
non ? Deux personnes proposent chacune une solution
O
Le fait qu’un algorithme produise un résultat ne suffit pas, on doit toujours penser à
sa complexité. Il faut prendre en compte son temps d’exécution et l’espace occupé
Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 46
A
1 Introduction
L
La complexité d’un problème P correspond à la quantité de
G
ressource nécessaire pour la résolution de P.
O
Dans le cadre de ce cours la ressource est temporelle.
En informatique théorique on mesure le temps par un nombre
d’étapes de calcul. Il s’agit d’étapes élémentaires de calcul.
Combien d’étape élémentaires sont nécessaires pour résoudre le
problème P.
Soit P un problème, A1, A2,,, , An les algorithme capable de
résoudre P. La complexité de P = min(C(Ai)) [ Minimum des
complexité des Ai ],
Quelle est la
complexité de R1 ?
➢Structure de contrôle
▪ Séquence
▪Embranchement (ou sélection)
▪Boucle (ou itération)
➢ Structures de données
▪Constantes
▪variables
▪tableaux
▪structures récursives (listes, arbres, graphes).
A démontrer
Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 60
A
6 Les principales classes de complexité
L
O
1 Déclaration d’un tableau en Java
3 Recherche dichotomique
O
➢ int [ ] NomTab;
1 Listes chainées O
2 Pile et tableaux
4 Tableaux doubles
5 Tables de hachage
6 Mini - Projet 1
Protocole
1- Lecture vidéo par les étudiants
2- Test diagnostic – en mini CC et Correction en
sale (60mn)
3-Remédiation et Résumé du cours
4-Evaluation sommative
1 Bulles O
2 Insertion
3 Fusion
4 Rapide
5 Tris tas
6 Mini - Projet 2
Protocole
1- Lecture vidéo par les étudiants
2- Test diagnostic – en mini CC et Correction en
sale (60mn)
3-Remédiation et Résumé du cours
4-Evaluation sommative
1 Arbres binaires O
2 Arbres n-aires
3 Parcours largeur
4 Arbres et tas
6 Mini - Projet 3
Protocole
1- Lecture vidéo par les étudiants
2- Test diagnostic – en mini CC et Correction en
sale (60mn)
3-Remédiation et Résumé du cours
4-Evaluation sommative
1 Introduction O
2 Parcours en profondeur
3 Cycle
4 Tri topologique
5 Tri bibliothèque
6 Mini - Projet 4
Protocole
1- Lecture vidéo par les étudiants
2- Test diagnostic – en mini CC et Correction en
sale (60mn)
3-Remédiation et Résumé du cours
4-Evaluation sommative