Vous êtes sur la page 1sur 86

A

Cours Algorithmique
Master1
2021-2022

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 1


OBJECTIFS ET PRE-REQUIS A

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 .

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 2


A
SOMMAIRE
L
❑Chapitre 1 : Rappels Eléments de base de l’algorithmique G

O
❑Chapitre 2 : Complexité

❑Chapitre 3 : Recherche dans un tableaux

❑Chapitre 4 : Structure linéaire

❑Chapitre 5 : Tris

❑Chapitre 6 : Arbres

❑Chapitre 7 : Graphes

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 3


A
Déroulement
L
❑Cours
G
Cours/TD : Après 2 séances de cours, suit une séance de TD/TP
Devoir : 1 devoir après chaque chapitre du cours (Domicile et corrigé en cours)
O
QUIZ : Intervient après trois séances et sont comptés dans les évaluations (10mn)
et 20 mn de correction en salle. Peut se faire avant le cours en situation de
classe inversée
❑ Evaluation
------------------------ CC -----30%
Devoir = 10 %
QUIZ = 30%
CC programmé = 60 %
------------------------- Projet ------30%
Projet de groupe
--------------------------Examen -------40%

NB Heures 45 Heures

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 4


A
Bibliographie
L
❑ Livres/articles, liens internet
1. Notes de cours G

2. Claude Delannoy, Programmer en C, Edition Eyrolle O

3. Antoine FRABOULET, Introduction à l’algorithmique et à la programmation,


INSA de Lyon, Département Télécommunications, Services et Usages.
4. Introduction à l’algorithmique voir http://unidentified-one.net
❑ MOOCs
Initiation à la programmation Java
ohttps://www.coursera.org/course/initprogjava
oPar Jamila et Jean Cedric
oDémarrage: Septembre
oEPFL
Conception et mise en œuvre d'algorithmes.
ohttps://class.coursera.org/algoprog-002/
by Dominique Rossin, Benjamin Werner

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 5


A
CHAPITRE 1
Rappels Eléments de base de l’Algorithmique L

1 Généralités O

2 Pourquoi étudier les algorithmes

3 Procédures récursives

4 Algorithmes DPR

5 Déclaration d’un Fichier

6 Questions/Réponses de révision

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 6


A
1 Généralités
L
❑ Schéma de résolution d’un problème
G

❑ Structure d’un algorithme

❑ Procédure et Fonction dans un algorithme

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 7


A
2 Pourquoi étudier les algorithmes ?
L
L‘étude des algorithmes datent d'Euclide. Les algorithmes ont été formalisés par
Church et Turing en 1930. Leur impact est large et très riche : G
▪Internet : Recherche Web, routage de paquets, partage de fichier distribué...
O
▪Biologie : Projet Genome Humain, Proteine ...
▪Ordinateurs : système de fichier, compilateur,
▪Informatique graphique : films, jeu video, realité virtuel, ...
▪Sécurité: Téléphone cellulaire, e-commerce, machine à voter...
▪Multimedia : MP3, JPS, DivX, HDTV, face recognition,...
▪Social Networks : Recommandations, divertissement,...
▪Physique: N-Body simulation, simulation de collision de particule…
▪Résoudre les problème qui ne pourraient pas autrement être abordés :
▪ Résoudre les problèmes de connectivité réseau car nécessitent des algorithmes
efficients pour le faire.
▪C'est bon de comprendre les algorithmes pour écrire de bon programme.
Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI
8 8
A
3 Procédures récursives
L
❑ Procédures récursives
C’est une procédure qui s’appelle elle-même un certain nombre de fois. Une procédure G
récursive utilise une pile lors de son exécution.
Structure d’une procédure O

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

Exemple de procédure recursive O


a) Version itérative de la fonction factorielle
Fonction fact(entier n) : entier
//*Objectif : calcul itératif de factoriel d’un nombre */
variable entier i, j ;
debut
j 1
pour i 1 à n faire
jj * i;
fpour
renvoyer j
fin
b) Version recursive
On sait que n! = n*(n-1)!

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 10


A
3 Procédures récursives
L
Fonction fact(entier n) : entier
//*Objectif : calcul recursif de factoriel d’un nombre */ G

// arguments : entier n*/ O


// Résultat : n! = n* (n-1)! */
debut
Si n = 1 alors renvoyer 1 //Instruction du point d’arrêt
Sinon
renvoyer n*fact(n-1)
Fsi
Fin

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 11


A
4 Algorithmes DPR
L
❑Définition
G
Les algorithmes récursifs suivent généralement une approche diviser pour régner : ils
O
séparent le problème en plusieurs sous-problèmes semblables au problème initial
mais de taille moindre, résolvent les sous-problèmes de façon récursive puis
combinent toutes les solutions pour produire la solution du problème original.
Un algo « DPR » comporte 3 étapes à chaque niveau de la récursivité :
1: Diviser le problème en un certain nombre de sous problèmes.
2: Régner sur les sous – problèmes en les résolvant de manière récursive. Si la taille
des sous problèmes est suffisamment réduite, on peut toutefois le résoudre
directement.
3:Combiner les solutions des sous-problèmes pour produire la solution du problème
original.

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 12


A
4 Algorithmes DPR
L
❑Application : Tri par fusion
G
Principe : diviser un tableau de longueur n en 2 tableaux de longueur n/2, de
O
trier récursivement les deux tableaux puis de fusionner les tableaux triés.

NB : la récursivité s’arrête quand le tableau à trier a une longueur 1, auquel cas


il n’y a plus rien à faire puisqu’il est déjà trié.
Soit le type Tvecteur :Tableau[n-p-1] de réel et la variable Tab de type
Tvecteur.
Ecrivons la procédure Tri-fusion(tab, p, r) qui trie les éléments du tableau Tab.
Si P >=r, le tableau a au plus 1 seul élément et il est donc déjà trié.
Sinon, l’étape diviser se contente de calculer un indice q=((n +p ) div 2) qui
partitionne Tab en 2 sous – tableaux égaux (ou presque).
Devoir à chercher - Dérouler la suite de l’algo….

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 13


A
4 Algorithmes DPR
L
❑Application : Tri par fusion
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 14


A
4 Algorithmes DPR
L
❑Application : Tri par fusion
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 15


A
4 Algorithmes DPR
L
❑Application : Tri par fusion
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 16


A
4 Algorithmes DPR
L
❑Application : Tri par fusion
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 17


A
4 Algorithmes DPR
L
❑Application : Tri par fusion
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 18


A
4 Algorithmes DPR
L
❑Application : Tri par fusion
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 19


A
4 Algorithmes DPR
L
❑Application : Tri par fusion
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 20


A
4 Algorithmes DPR
L
❑Application : Tri par fusion
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 21


A
4 Algorithmes DPR
L
❑Application : Tri par fusion
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 22


A
4 Algorithmes DPR
L
❑Application : Tri par fusion
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 23


A
4 Algorithmes DPR
L
❑Application : Tri par fusion
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 24


A
4 Algorithmes DPR
L
❑Application : Tri par fusion
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 25


A
4 Algorithmes DPR
L
❑Application : Tri par fusion
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 26


A
4 Algorithmes DPR
L
❑Application : Tri par fusion
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 27


A
5 Déclaration d’un fichier -1-
L
❑ Langage Algorithmique
PROBLEME : écriture d’un algorithme permettant de stocker dans un fichier texte f, G
les enregistrements relatifs aux employés d’une entreprise constituée de 20
O
employés.
------------------------ Résolution du problème
Algo Ecriture
Type
TEmploye = enreg
nom : chaine;
prenom : chaine;
Age : entier
FinEnreg

Var
f : Fichier
Employe : Temploye;

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 28


A
5 Déclaration d’un fichier -2-
L
Debut
n = 1; G

Ouvrir (f, ecriture) O


Tant que n<=20 faire
Avec employe faire
lire (nom)
lire (prenom)
Fin Avec
ecrire(f, employe)
n = n+1
Ftantque
fermer(f)
Fin

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 29


A
5 Déclaration d’un fichier -3-
Problème L
On souhaite afficher les informations d’un fichier contenant les G
enregistrements des étudiants. Pour cela on utilise un tableau qui doit
permettre de stocker les informations en provenance du fichier avant de les O
afficher.
---------------Algo Lecture
Const max = 300
Type
TEtudiant = enreg
Chaine[20] Nom;
Chaine[20] Prenom;
Entier Telephone
FinEnreg
Ttab = Tableau[max-1] de TEtudiant,;
Var
Ttab repertoire;
Fichier f;
Entier i;

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 30


A
5 Déclaration d’un fichier -4-
L
Debut
G
Ouvrir (f, lecture)
O
i = 1;
Tant que (Non(EOF(f)) et i < Max ) faire
lireFichier(f, repertoire[i])
Ecrire(repertoire[i].nom, repertoire[i].prenom, repertoire[i].telephone);
i = i+1
Ftantque
fermer(f)
Fin

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 31


A
5 Déclaration fichier -5-
L
❑ Langage Algorithmique
❑ Rappels : Entrée/sortie standard G

Un programme comprend trois flux de données : O


▪une sortie standard appelée stdout, il permet au programme de produire des
données,
▪une entrée standard appelée stdin, il permet à l'utilisateur de fournir des
données au programme
▪une sortie d'erreur standard appelée stderr : il permet de fournir des
renseignements à propos d'erreurs qui se produisent au cours de l'exécution du
programme.

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('‘<…> '‘);

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 32


A
5 Déclaration d’un fichier -6-
❑ Rappels : Entrée/sortie standard L

System.out est un objet de type PrintStream. G


La méthode Print de System.out renvoie une chaine vers la sortie standard
O
NB : on peut par exemple créer une instance de PrintStream qui se comporte
comme System.out, par exemple :
avec <import java.io.PrintStream; > je peux écrire
PrintStream m = new PrintStream(System.out);
m.println("Bonjour les amis");
m se comportera comme System.out
➢Entrée standard
L ’entrée standard est représentée par l'objet System.in. C’est un objet de type
InputStream.
La classe Scanner de util peut à partir du paramètre System.in lire des données depuis
l'entrée standard. Ensuite, on invoque la méthode par exemple nextLine() qui renvoie
toute la ligne tapée à la console sous forme d'un String.

Scanner scanner = new Scanner (System.in);


String phrase = scanner.nextLine();

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 33


A
5 Déclaration d’un fichier -7-
L
❑ Flux de données : représente une suite d’octets issus d’un programme pour une
certaine destination ou issus d’une source pour un programme. La source ou la G
destination peuvent être un fichier, une chaîne de caractères, un tableau d’octets, un
autre programme… O

❑ 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 :

➢Pour les flux d’octets :


-la classe java.io.InputStream
-la classe java.io.OutputStream

➢Pour les flux de caractères:


-la classe java.io.Reader
-la classe java.io.Writer

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 34


A
5 Déclaration d’un fichier -8-
L
❑ Certaines classes héritées de InputStream (resp. Reader) servent essentiellement
à extraire, à partir d’une certaine source, des données pour le programme sous G
forme d’octets ou de tableaux d’octets (resp. caractères ou tableaux de caractères).
O
❑ Certaines classes héritées de OutputStream (resp. Reader) servent à extraire,
des données se présentant sous forme d’octets ou de tableaux d’octets (resp.
caractères ou tableaux de caractères) à partir du programme pour une certaine
destination; l’ensemble de ces classes forment les « classes d’extraction ».

❑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 ».

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 35


A
5 Déclaration d’un fichier -9-
L
❑Par exemple, la classe de fonctionnalités PrinWriter admet un constructeur ayant un
paramètre de type Writer. Les classes FileWriter et StringWriter, qui héritent de Writer, G
sont deux classes d’extraction qui servent à écrire des caractères issus des données
d’un programme (un par un ou à partir d’un tableau ou d’une chaine ) dans un fichier O
pour la première ou dans une chaine de caractères pour la seconde. On pourra écrire :

new PrintWriter(new FileWriter("fichier.txt"));

Ou new PrintWriter(new StringWriter())

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

out1.println(i); écrira la valeur de i dans le fichier fichier.txt;

out2.println(i); écrira la valeur de i dans la chaîne de caractères (instance de la classe


StringBuffer) contenue par l'objet sortieChaine ; la méthode toString de sortieChaine
permet de récupérer cette chaîne de caractères.

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 37


A
5 Déclaration d’un fichier -11-
L
❑ Transcription en Java: (1ère approche)
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 38


A
5 Déclaration d’un fichier -12-
L
❑ Transcription en Java: (1ère approche)(suite)
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 39


A
5 Déclaration d’un fichier -13-
L
❑ Transcription en Java: (1ère approche)(Fin)
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 40


A
6 Questions de révision
L
❑ Question 1 : quelle différence y a-t-il entre :
G
✓Algorithme et procédure
O
✓Algorithme et programme
✓Procédure et fonction

❑Question 2 : un algorithme gère les problèmes d’allocation (V ou F)


❑Question 3 : quelles sont les types de contenu de variable les plus courants ?
❑Question 4: quelles sont les quatre catégories d’instruction qu’un ordinateur est capable
de comprendre ?
❑Question 5: qu’est-ce qu’un type énuméré ? Donnez la syntaxe des algo des types
énumérés.
❑Question 6: qu’est-ce qu’un type composé ? Donnez la syntaxe Algo des types
composés.
❑ Question 7: qu’est-ce qu’un type de base ou type prédéfini ?

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 41


A
6 Questions de révision
L
❑ Question 8 : qu’est-ce qu’un type paramétré ?
❑ Question 9 : Donnez quelques exemples de type paramétré G

❑ Question10: A quoi sert l’instruction « Avec … faire » ? Donnez sa syntaxe. Exhibez O


un exemple d’application.
❑Question11 : Combien existe –il de type de fichier ? Combien y a-il de mode d’accès aux
fichiers ?
❑Question 12 : exhibez la syntaxe de déclaration d’un fichier.
❑Question 13 : a quoi sert la fonction EOF() ?
❑Question 14 : quand dit-on que l’argument V d’une fonction ou d’une procédure est
passée par valeur ?
Exhibez un exemple en C et en Java
❑Question 15 : quand dit-on que l’argument V d’une fonction ou d’une procédure est
passée par référence ?
Exhibez un exemple en C et en Java

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 42


A
CHAPITRE 2
Complexité des Algorithmiques L

G
1 Introduction
O
2 Vue générale de l’évaluation

3 Notation LANDAU

4 Notation THETA

5 Principales classes de complexité

6 Quelques Applications

7 Equations récursives

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 43


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 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 ],

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 47


A
1 Introduction
L
Autre Exemple illustratif :
G
Soit à rechercher un élément x dans une liste L
O
Rechercher (x, L) retourne vrai si x est dans L et Faux sinon.
L est constitué d’éléments allant de L[1], L[2]…L[n], par exemple des entiers
ou des mots…
Soit la fonction R1 constituée de La séquence d’instructions suivantes :

Quelle est la
complexité de R1 ?

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 48


A
1 Introduction
L
La complexité de R1 est :
G

Ceci est énorme, on peut faire mieux

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 49


A
1 Introduction
L
Soit la fonction R2 suivante : G

C’est complexité ont été calculée


sous l’hypothèse de liste non trié.

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 50


A
1 Introduction
L
Supposons un algorithme R3 G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 51


A
1 Introduction
L
Soit P un problème et M une méthode pour résoudre le problème P.
G
L’algorithme est la description de la méthode M dans un langage algorithmique.
Un algorithme se présente ainsi qu’il suit : O

➢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).

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 52


Vue générale de l’évaluation
A
2
L
On veut :
❖Evaluer l’efficacité de la méthode M G

❖Comparer M avec une autre méthode M’ indépendamment de l’environnement (Machine, O


système, compilateur,…)
❖Evaluation du nombre d’opérations élémentaires en fonction :
-de la taille des données
-de la nature des données
Notation
n : taille des données
T(n) : nombre d’opération élémentaires
Configuration caractéristiques
oMeilleurs cas
oPire des cas
oCas moyen

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 53


A
2 Evaluation
L
❑ Evaluation T(n) : cas séquence
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 54


A
2 Evaluation
L
❑ Evaluation T(n) : Cas Branchement
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 55


A
2 Evaluation
L
❑ Evaluation T(n) : Cas Boucle
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 56


A
2 Evaluation
L
❑ Evaluation T(n) : Cas Fonctions récursives
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 57


A
3 Notation Lando
L

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 58


A
4 Notation Thêta
L

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 59


A
5 Exemples
L

A démontrer
Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 60
A
6 Les principales classes de complexité
L

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 61


A
7 Applications
L
❑ Cas permutation
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 62


A
7 Applications
L
❑ Cas Recherche (Séquence)
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 63


A
7 Applications
L
❑ Cas Tri bulle
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 64


A
8 Equations récursives
L

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 65


A
8 Equations récursives
L
❑ Méthode par substitution --1--
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 66


A
8 Equations récursives
L
❑ Méthode par substitution --2--
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 67


A
9 Méthode itérative
L
❑ Méthode par substitution --3--
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 68


A
9 Méthode itérative
L
❑ Rappels sommation
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 69


A
9 Méthode itérative
L
❑ Equation recursive
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 70


A
9 Méthode itérative
L
❑ Equation récursive
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 71


A
10 Méthode itérative
L
❑ Equation récursive
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 72


A
10 Méthode itérative
L
❑ Equation récursive
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 73


A
10 Méthode itérative
L
❑ Equation récursive
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 74


A
11 Calcul de temps
L
❑ Simulation
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 75


A
10 Calcul de temps
L
❑ Simulation
G

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 76


A
CHAPITRE 3
Les tableaux L

O
1 Déclaration d’un tableau en Java

2 Recherche dans un tableau

3 Recherche dichotomique

4 Minimiser les comparaisons

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 77


A
1 Déclaration des tableaux en Java
L

Déclaration d’un tableau en Java G

O
➢ int [ ] NomTab;

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 78


A
CHAPITRE 4
Structure linéaire L

1 Listes chainées O

2 Pile et tableaux

3 Listes doublement chainées

4 Tableaux doubles

5 Tables de hachage

6 Mini - Projet 1

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 79


A
CHAPITRE 3
Structure linéaire L

Pratique de la classe inversée O

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

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 80


A
CHAPITRE 5
TRIS L

1 Bulles O

2 Insertion

3 Fusion

4 Rapide

5 Tris tas

6 Mini - Projet 2

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 81


A
CHAPITRE 4
TRIS L

Pratique de la classe inversée O

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

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 82


A
CHAPITRE 5
Arbres L

1 Arbres binaires O

2 Arbres n-aires

3 Parcours largeur

4 Arbres et tas

5 Arbres binaires de recherche

6 Mini - Projet 3

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 83


A
CHAPITRE 5
Arbres L

Pratique de la classe inversée O

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

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 84


A
CHAPITRE 6
Graphes L

1 Introduction O

2 Parcours en profondeur

3 Cycle

4 Tri topologique

5 Tri bibliothèque

6 Mini - Projet 4

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 85


A
CHAPITRE 6
Graphes L

Pratique de la classe inversée O

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

Cours ALGORITHMIQUE – MASTER 1 Dr. Ing/PhD Bernabé BATCHAKUI 86

Vous aimerez peut-être aussi