![Page 1: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/1.jpg)
Cours d’Elements d’Algorithmique
1 cours magistral le jeudi de 14h a 15h30
![Page 2: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/2.jpg)
Cours d’Elements d’Algorithmique
La prof d’amphi: Anne Micheli
https://www.irif.fr/∼amicheli/
![Page 3: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/3.jpg)
Cours d’Elements d’Algorithmique
Les charges de TDs
Juliusz Chroboczek
Victor Lanvin
Antonio Bucciarelli
Info 4
Info 3
Info 2
Info 1
mercredi 8h30-10h30
vendredi 10h45-12h45
mardi 16h45-18h45
mardi 8h30-10h30
Ilias Garnier
![Page 4: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/4.jpg)
Cours d’Elements d’Algorithmique
40% de controle continu + 60% pour l’examen final
Partiel (le 18 octobre)
![Page 5: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/5.jpg)
D’ou vient le mot algorithme?
![Page 6: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/6.jpg)
D’ou vient le mot algorithme?
Muhammad Ibn Musa al-Khuwarizmı (∼ 780-850)
mathematicien, geographe, astrologue et astronome perse
![Page 7: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/7.jpg)
Qu’est ce qu’un algorithme?
![Page 8: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/8.jpg)
Qu’est ce qu’un algorithme?
Au depart, il y a un probleme ? ? ?
![Page 9: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/9.jpg)
Qu’est ce qu’un algorithme?
Au depart, il y a un probleme ? ? ?
Comment faire ungateau au chocolat?
![Page 10: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/10.jpg)
Qu’est ce qu’un algorithme?
Au depart, il y a un probleme ? ? ?
Comment faire ungateau au chocolat?
Comment trier dans l’ordre croissantune suite de nombres entiers?
![Page 11: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/11.jpg)
Qu’est ce qu’un algorithme?
Au depart, il y a un probleme ? ? ?
Comment faire ungateau au chocolat?
Comment trier dans l’ordre croissantune suite de nombres entiers?
Comment additionner 2 nombres?
![Page 12: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/12.jpg)
Qu’est ce qu’un algorithme?
Suite finie d’instructions qui transforment
une donnee d’entree en une donnee de sortie
entree sortie
![Page 13: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/13.jpg)
Qu’est ce qu’un algorithme?
200 g de chocolat noir
4 œufs
150 g de sucre
80 g de farine
200 g de beurre melanger les jaunes d’œufs avec...mettre 20 min au four a 180˚entree
sortie
Pour 6 personnes:
suite finie d’instructions
![Page 14: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/14.jpg)
Qu’est ce qu’un algorithme?
entree
sortie
suite finie d’instructions
n1 = 50839n2 = 160736
commencer par additionner les2 chiffres des unites
res = 211575
![Page 15: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/15.jpg)
Qu’est ce qu’un algorithme?
entree
sortie
suite finie d’instructions
n1 = 50839n2 = 160736
commencer par additionner les2 chiffres des unites
res = 211575
puis repeter :noter le chiffre des unitesretenir le chiffre des dizaines,
additionner les deux chiffress’il y en a un
suivants de n1 et n2 et laretenue
![Page 16: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/16.jpg)
Qu’est ce qu’un algorithme?
entree
sortie
suite finie d’instructions
n1 = 50839n2 = 160736
commencer par additionner les2 chiffres des unites
res = 211575
La donnee d’entree est appelee instance du probleme
puis repeter :noter le chiffre des unitesretenir le chiffre des dizaines,
additionner les deux chiffress’il y en a un
suivants de n1 et n2 et laretenue
![Page 17: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/17.jpg)
Qu’est ce qu’un algorithme?
entree
sortie
n1 = 18n2 = 244
commencer par additionner les2 chiffres des unites
res = 262
nouvelle instance du probleme
puis repeter :noter le chiffre des unitesretenir le chiffre des dizaines,
additionner les deux chiffress’il y en a un
suivants de n1 et n2 et laretenue
suite finie d’instructions
![Page 18: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/18.jpg)
Qu’est ce qu’un algorithme?
Un algorithme est dit correct si, pour toute instance du probleme,
l’algorithme s’arrete lorsqu’il produit la bonne donnee de sortie.
![Page 19: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/19.jpg)
Qu’est ce qu’un algorithme?
Un algorithme est dit correct si, pour toute instance du probleme,
l’algorithme s’arrete lorsqu’il produit la bonne donnee de sortie.
Exemples de problemes resolus par l’algorithmique:
- Acceder rapidement a l’information sur internet
- Identifier les 100000 genes de l’ADN humaine
- Archiver des donnees telles qu’elles occupent le moins de place possible
![Page 20: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/20.jpg)
Ecrire un algorithme
Il n’est pas necessaire de choisir un langage de programmation
![Page 21: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/21.jpg)
Ecrire un algorithme
Il n’est pas necessaire de choisir un langage de programmation
on ne veut pas dependre des specificites d’un langage
=⇒ on ecrit en pseudo-code
![Page 22: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/22.jpg)
Ecrire un algorithme
Il n’est pas necessaire de choisir un langage de programmation
on ne veut pas dependre des specificites d’un langage
=⇒ on ecrit en pseudo-code
if ... then{...
} else {...
}
Conditionnelle Boucles
for i from ... to ... {...
while ... {}
...}
Affectation
x ← ... ou x = ...
Fonction
return ...
mafonction(...){...
}
Tests
= ou ==
6=, >,≥, ...
![Page 23: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/23.jpg)
Ecrire un algorithme
Probleme: recherche du minimum dans un tableau d’entiers
donnees: un tableau d’entiers resultat: l’element minimum du tableau
![Page 24: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/24.jpg)
2 15
Ecrire un algorithme
Probleme: recherche du minimum dans un tableau d’entiers
Principe: on initialise le minimum a la premiere entree du tableau.
Puis on parcourt les autres entrees du tableau une a une
en mettant a jour le minimum si necessaire.
6 19 3 11 9 5
min ← 6
donnees: un tableau d’entiers resultat: l’element minimum du tableau
7
![Page 25: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/25.jpg)
2 15
Ecrire un algorithme
Probleme: recherche du minimum dans un tableau d’entiers
Principe: on initialise le minimum a la premiere entree du tableau.
Puis on parcourt les autres entrees du tableau une a une
en mettant a jour le minimum si necessaire.
6 19 3 11 9 5
min ←
19
6
donnees: un tableau d’entiers resultat: l’element minimum du tableau
7
![Page 26: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/26.jpg)
2 15
Ecrire un algorithme
Probleme: recherche du minimum dans un tableau d’entiers
Principe: on initialise le minimum a la premiere entree du tableau.
Puis on parcourt les autres entrees du tableau une a une
en mettant a jour le minimum si necessaire.
19 3 11 9 5
min ←
6
3
donnees: un tableau d’entiers resultat: l’element minimum du tableau
3 7
![Page 27: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/27.jpg)
2 15
Ecrire un algorithme
Probleme: recherche du minimum dans un tableau d’entiers
Principe: on initialise le minimum a la premiere entree du tableau.
Puis on parcourt les autres entrees du tableau une a une
en mettant a jour le minimum si necessaire.
19 3 11 9 5
min ←
6
3
donnees: un tableau d’entiers resultat: l’element minimum du tableau
3 77
![Page 28: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/28.jpg)
2 15
Ecrire un algorithme
Probleme: recherche du minimum dans un tableau d’entiers
Principe: on initialise le minimum a la premiere entree du tableau.
Puis on parcourt les autres entrees du tableau une a une
en mettant a jour le minimum si necessaire.
19 3 11 9 5
min ←
6
3
donnees: un tableau d’entiers resultat: l’element minimum du tableau
3 117
![Page 29: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/29.jpg)
2 15
Ecrire un algorithme
Probleme: recherche du minimum dans un tableau d’entiers
Principe: on initialise le minimum a la premiere entree du tableau.
Puis on parcourt les autres entrees du tableau une a une
en mettant a jour le minimum si necessaire.
19 3 11 9 5
min ←
6
3
donnees: un tableau d’entiers resultat: l’element minimum du tableau
3 97
![Page 30: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/30.jpg)
2 15
Ecrire un algorithme
Probleme: recherche du minimum dans un tableau d’entiers
Principe: on initialise le minimum a la premiere entree du tableau.
Puis on parcourt les autres entrees du tableau une a une
en mettant a jour le minimum si necessaire.
19 3 11 9 5
min ← 2
6
donnees: un tableau d’entiers resultat: l’element minimum du tableau
27
![Page 31: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/31.jpg)
2 15
Ecrire un algorithme
Probleme: recherche du minimum dans un tableau d’entiers
Principe: on initialise le minimum a la premiere entree du tableau.
Puis on parcourt les autres entrees du tableau une a une
en mettant a jour le minimum si necessaire.
19 3 11 9 5
min ← 2
6
donnees: un tableau d’entiers resultat: l’element minimum du tableau
2 157
![Page 32: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/32.jpg)
2 15
Ecrire un algorithme
Probleme: recherche du minimum dans un tableau d’entiers
Principe: on initialise le minimum a la premiere entree du tableau.
Puis on parcourt les autres entrees du tableau une a une
en mettant a jour le minimum si necessaire.
19 3 11 9 5
min ← 2
6
A la fin du parcours, on obtient le minimum
donnees: un tableau d’entiers resultat: l’element minimum du tableau
2 57
![Page 33: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/33.jpg)
Ecrire un algorithme
Probleme: recherche du minimum dans un tableau d’entiers
RechercheMin (tab: un tableau de n entiers){
min ← tab[0]1 on initialise le minimum a la premiere entree du tableau
donnees: un tableau d’entiers resultat: l’element minimum du tableau
}
![Page 34: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/34.jpg)
Ecrire un algorithme
Probleme: recherche du minimum dans un tableau d’entiers
RechercheMin (tab: un tableau de n entiers){
min ← tab[0]
for i from 1 to n-1 {
}
1
2
on initialise le minimum a la premiere entree du tableau
Puis on parcourt les autres entrees du tableau une a une
donnees: un tableau d’entiers resultat: l’element minimum du tableau
}
![Page 35: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/35.jpg)
Ecrire un algorithme
Probleme: recherche du minimum dans un tableau d’entiers
RechercheMin (tab: un tableau de n entiers){
min ← tab[0]
for i from 1 to n-1 {
if min > tab[i] {
min ← tab[i]
}
}
1
2
3
4
5
6
on initialise le minimum a la premiere entree du tableau
Puis on parcourt les autres entrees du tableau une a une
en mettant a jour le minimum si necessaire
donnees: un tableau d’entiers resultat: l’element minimum du tableau
}
![Page 36: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/36.jpg)
Ecrire un algorithme
Probleme: recherche du minimum dans un tableau d’entiers
RechercheMin (tab: un tableau de n entiers){
min ← tab[0]
for i from 1 to n-1 {
if min > tab[i] {
min ← tab[i]
}
}
return min
1
2
3
4
5
6
7
on initialise le minimum a la premiere entree du tableau
Puis on parcourt les autres entrees du tableau une a une
en mettant a jour le minimum si necessaire
A la fin du parcours, on obtient le minimum
donnees: un tableau d’entiers resultat: l’element minimum du tableau
}
![Page 37: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/37.jpg)
Ecrire un algorithme
Probleme: recherche du minimum dans un tableau d’entiers
RechercheMin (tab: un tableau de n entiers){
min ← tab[0]
for i from 1 to n-1 {
if min > tab[i] {
min ← tab[i]
}
}
return min
1
2
3
4
5
6
7
on initialise le minimum a la premiere entree du tableau
Puis on parcourt les autres entrees du tableau une a une
en mettant a jour le minimum si necessaire
A la fin du parcours, on obtient le minimumL’a
lgor
ithm
ees
tco
rrec
t!
donnees: un tableau d’entiers resultat: l’element minimum du tableau
}
![Page 38: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/38.jpg)
6
Ecrire un algorithme
Probleme: recherche du minimum dans un tableau d’entiers
RechercheMin (tab: un tableau de n entiers){
min ← tab[0]
for i from 1 to n-1 {
if min > tab[i] {
min ← tab[i]
}
}
return min
1
2
3
4
5
6
7
on initialise le minimum a la premiere entree du tableau
Puis on parcourt les autres entrees du tableau une a une
en mettant a jour le minimum si necessaire
A la fin du parcours, on obtient le minimum
19 7 11 9 2 15 5
donnees: un tableau d’entiers resultat: l’element minimum du tableau
}3
![Page 39: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/39.jpg)
6
Ecrire un algorithme
Probleme: recherche du minimum dans un tableau d’entiers
RechercheMin (tab: un tableau de n entiers){
min ← tab[0]
for i from 1 to n-1 {
if min > tab[i] {
min ← tab[i]
}
}
return min
1
2
3
4
5
6
7
on initialise le minimum a la premiere entree du tableau
Puis on parcourt les autres entrees du tableau une a une
en mettant a jour le minimum si necessaire
A la fin du parcours, on obtient le minimum
19 7 11 9 2 15 5
i = 1
19
donnees: un tableau d’entiers resultat: l’element minimum du tableau
}3
![Page 40: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/40.jpg)
6
Ecrire un algorithme
Probleme: recherche du minimum dans un tableau d’entiers
RechercheMin (tab: un tableau de n entiers){
min ← tab[0]
for i from 1 to n-1 {
if min > tab[i] {
min ← tab[i]
}
}
return min
1
2
3
4
5
6
7
on initialise le minimum a la premiere entree du tableau
Puis on parcourt les autres entrees du tableau une a une
en mettant a jour le minimum si necessaire
A la fin du parcours, on obtient le minimum
19 7 11 9 2 15 5
i = 2
donnees: un tableau d’entiers resultat: l’element minimum du tableau
}336
![Page 41: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/41.jpg)
6
Ecrire un algorithme
Probleme: recherche du minimum dans un tableau d’entiers
RechercheMin (tab: un tableau de n entiers){
min ← tab[0]
for i from 1 to n-1 {
if min > tab[i] {
min ← tab[i]
}
}
return min
1
2
3
4
5
6
7
on initialise le minimum a la premiere entree du tableau
Puis on parcourt les autres entrees du tableau une a une
en mettant a jour le minimum si necessaire
A la fin du parcours, on obtient le minimum
19 7 11 9 2 15 57
i = 3
donnees: un tableau d’entiers resultat: l’element minimum du tableau
}336
![Page 42: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/42.jpg)
6
Ecrire un algorithme
Probleme: recherche du minimum dans un tableau d’entiers
RechercheMin (tab: un tableau de n entiers){
min ← tab[0]
for i from 1 to n-1 {
if min > tab[i] {
min ← tab[i]
}
}
return min
1
2
3
4
5
6
7
on initialise le minimum a la premiere entree du tableau
Puis on parcourt les autres entrees du tableau une a une
en mettant a jour le minimum si necessaire
A la fin du parcours, on obtient le minimum
19 7 11 9 2 15 5
i = 4
11
donnees: un tableau d’entiers resultat: l’element minimum du tableau
}336
![Page 43: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/43.jpg)
6
Ecrire un algorithme
Probleme: recherche du minimum dans un tableau d’entiers
RechercheMin (tab: un tableau de n entiers){
min ← tab[0]
for i from 1 to n-1 {
if min > tab[i] {
min ← tab[i]
}
}
return min
1
2
3
4
5
6
7
on initialise le minimum a la premiere entree du tableau
Puis on parcourt les autres entrees du tableau une a une
en mettant a jour le minimum si necessaire
A la fin du parcours, on obtient le minimum
19 7 11 9 2 15 59
i = 5
donnees: un tableau d’entiers resultat: l’element minimum du tableau
}336
![Page 44: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/44.jpg)
6
Ecrire un algorithme
Probleme: recherche du minimum dans un tableau d’entiers
RechercheMin (tab: un tableau de n entiers){
min ← tab[0]
for i from 1 to n-1 {
if min > tab[i] {
min ← tab[i]
}
}
return min
1
2
3
4
5
6
7
on initialise le minimum a la premiere entree du tableau
Puis on parcourt les autres entrees du tableau une a une
en mettant a jour le minimum si necessaire
A la fin du parcours, on obtient le minimum
19 7 11 9 2 15 5
i = 6
9
donnees: un tableau d’entiers resultat: l’element minimum du tableau
}2336 3
![Page 45: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/45.jpg)
6
Ecrire un algorithme
Probleme: recherche du minimum dans un tableau d’entiers
RechercheMin (tab: un tableau de n entiers){
min ← tab[0]
for i from 1 to n-1 {
if min > tab[i] {
min ← tab[i]
}
}
return min
1
2
3
4
5
6
7
on initialise le minimum a la premiere entree du tableau
Puis on parcourt les autres entrees du tableau une a une
en mettant a jour le minimum si necessaire
A la fin du parcours, on obtient le minimum
19 7 11 9 2 15 5
9
15
i = 7
donnees: un tableau d’entiers resultat: l’element minimum du tableau
}152336 3
![Page 46: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/46.jpg)
6
Ecrire un algorithme
Probleme: recherche du minimum dans un tableau d’entiers
RechercheMin (tab: un tableau de n entiers){
min ← tab[0]
for i from 1 to n-1 {
if min > tab[i] {
min ← tab[i]
}
}
return min
1
2
3
4
5
6
7
on initialise le minimum a la premiere entree du tableau
Puis on parcourt les autres entrees du tableau une a une
en mettant a jour le minimum si necessaire
A la fin du parcours, on obtient le minimum
19 7 11 9 2 15 5
9 15
i = 8
donnees: un tableau d’entiers resultat: l’element minimum du tableau
}52336 3
![Page 47: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/47.jpg)
Ecrire un algorithme
Probleme: recherche du minimum dans un tableau d’entiersde l’element x
RechercheMin (tab: un tableau de n entiers){
min ← tab[0]
for i from 1 to n-1 {
if min > tab[i] {
min ← tab[i]
}
}
return min
1
2
3
4
5
6
7
on initialise le minimum a la premiere entree du tableau
Puis on parcourt les autres entrees du tableau une a une
en mettant a jour le minimum si necessaire
A la fin du parcours, on obtient le minimum
donnees: un tableau d’entiers et un entier
resultat: l’indice de l’entier recherche dans le tableau s’il s’y trouve, -1 sinon
}}}}
![Page 48: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/48.jpg)
s’il s’y trouve, -1 sinon
on initialise l’indice de x dans le tableau a -1, ie. x n’a pas encore ete vu
Puis on parcourt toutes les entrees du tableau une a une
en mettant a jour l’indice de x dans le tableau si necessaire
A la fin du parcours, on obtient l’indice de x dans tab
RechercheMin (tab: un tableau de n entiers)
Ecrire un algorithme
ind ← -1
for i from 0 to n-1 {
if tab[i] = x {
ind ← i
}
}
return ind
1
2
3
4
5
6
7
RechercheElt (tab: un tableau de n entiers, x: entier){
Probleme: recherche du minimum dans un tableau d’entiersde l’element x
donnees: un tableau d’entiers et un entier
resultat: l’indice de l’entier recherche dans le tableau s’il s’y trouve, -1 sinon
}
![Page 49: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/49.jpg)
s’il s’y trouve, -1 sinon
on initialise l’indice de x dans le tableau a -1, ie. x n’a pas encore ete vu
Puis on parcourt toutes les entrees du tableau une a une
en mettant a jour l’indice de x dans le tableau si necessaire
A la fin du parcours, on obtient l’indice de x dans tab
RechercheMin (tab: un tableau de n entiers)
Ecrire un algorithme
ind ← -1
for i from 0 to n-1 {
if tab[i] = x {
ind ← i
}
}
return ind
1
2
3
4
5
6
7
RechercheElt (tab: un tableau de n entiers, x: entier){
Amelioration: retourner l’indice de x des qu’on le trouve dans le tableau
Probleme: recherche du minimum dans un tableau d’entiersde l’element x
donnees: un tableau d’entiers et un entier
resultat: l’indice de l’entier recherche dans le tableau s’il s’y trouve, -1 sinon
}
![Page 50: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/50.jpg)
s’il s’y trouve, -1 sinon
on initialise l’indice de x dans le tableau a -1, ie. x n’a pas encore ete vu
Puis on parcourt toutes les entrees du tableau une a une
en mettant a jour l’indice de x dans le tableau si necessaire
A la fin du parcours, on obtient l’indice de x dans tab
RechercheMin (tab: un tableau de n entiers)
Ecrire un algorithme
ind ← -1
for i from 0 to n-1 {
if tab[i] = x {
ind ← i
}
}
return ind
1
2
3
4
5
6
7
RechercheElt (tab: un tableau de n entiers, x: entier){
Amelioration: retourner l’indice de x des qu’on le trouve dans le tableau
-1
On parcourt toutes les entrees du tableau une a une
en retournant l’indice de x dans le tableau si on trouve x
Probleme: recherche du minimum dans un tableau d’entiersde l’element x
donnees: un tableau d’entiers et un entier
resultat: l’indice de l’entier recherche dans le tableau s’il s’y trouve, -1 sinon
}
Si on arrive ici, c’est que x n’a pas ete trouveet on retourne -1
return i
![Page 51: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/51.jpg)
Conclusion
Losqu’on connait bien un algorithme pour resoudre un probleme, on peut en deduire d’autres
pour resoudre d’autres problemes similaires en effectuant de petits changements
![Page 52: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/52.jpg)
Conclusion
Losqu’on connait bien un algorithme pour resoudre un probleme, on peut en deduire d’autres
Questions
On a parle d’amelioration, mais qu’est-ce que cela signifie?
Comment comparer deux algorithmes resolvant le meme probleme sur les memes instances?
pour resoudre d’autres problemes similaires en effectuant de petits changements
![Page 53: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/53.jpg)
Un nouvel algorithme pour trouver le minimum d’un tableau
Probleme: recherche du minimum dans un tableau d’entiersdonnees: un tableau d’entiers resultat: l’element minimum du tableau
![Page 54: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/54.jpg)
Un nouvel algorithme pour trouver le minimum d’un tableau
Probleme: recherche du minimum dans un tableau d’entiersdonnees: un tableau d’entiers resultat: l’element minimum du tableau
6 19 3 7 11 9 2 15 5
Principe: diviser pour regner
![Page 55: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/55.jpg)
Un nouvel algorithme pour trouver le minimum d’un tableau
Probleme: recherche du minimum dans un tableau d’entiersdonnees: un tableau d’entiers resultat: l’element minimum du tableau
6 19 3 7 11 9 2 15 5
Principe: diviser pour regner
![Page 56: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/56.jpg)
Un nouvel algorithme pour trouver le minimum d’un tableau
Probleme: recherche du minimum dans un tableau d’entiersdonnees: un tableau d’entiers resultat: l’element minimum du tableau
6 19 3 7 11 9 2 15 5
Principe: diviser pour regner
6 3
9
![Page 57: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/57.jpg)
3
Un nouvel algorithme pour trouver le minimum d’un tableau
Probleme: recherche du minimum dans un tableau d’entiersdonnees: un tableau d’entiers resultat: l’element minimum du tableau
6 19 3 7 11 9 2 15 5
Principe: diviser pour regner
6 3
9
52
![Page 58: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/58.jpg)
3
Un nouvel algorithme pour trouver le minimum d’un tableau
Probleme: recherche du minimum dans un tableau d’entiersdonnees: un tableau d’entiers resultat: l’element minimum du tableau
6 19 3 7 11 9 2 15 5
Principe: diviser pour regner
6 3
9
52
2
![Page 59: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/59.jpg)
3 2
Un nouvel algorithme pour trouver le minimum d’un tableau
Probleme: recherche du minimum dans un tableau d’entiersdonnees: un tableau d’entiers resultat: l’element minimum du tableau
6 19 3 7 11 9 2 15 5
Principe: diviser pour regner
6 3
9
52
2
![Page 60: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/60.jpg)
3 2
Un nouvel algorithme pour trouver le minimum d’un tableau
Probleme: recherche du minimum dans un tableau d’entiersdonnees: un tableau d’entiers resultat: l’element minimum du tableau
6 19 3 7 11 9 2 15 5
Principe: diviser pour regner
6 3
9
52
2
2
![Page 61: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/61.jpg)
3 2
Un nouvel algorithme pour trouver le minimum d’un tableau
Probleme: recherche du minimum dans un tableau d’entiersdonnees: un tableau d’entiers resultat: l’element minimum du tableau
6 19 3 7 11 9 2 15 5
Principe: diviser pour regner
6 3
9
52
3
2
2
2
scinder le tableau en deux sous-tableaux T1 et T2
calculer le minimum, min1 de T1
calculer le minimum, min2 de T2
retourner le minimum de min1 et min2
si T a plus qu’un element
sinon retourner l’unique element de T
T1 T2
![Page 62: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/62.jpg)
3 2
Un nouvel algorithme pour trouver le minimum d’un tableau
Probleme: recherche du minimum dans un tableau d’entiersdonnees: un tableau d’entiers resultat: l’element minimum du tableau
6 19 3 7 11 9 2 15 5
Principe: diviser pour regner
6 3
9
52
3
2
2
2
scinder le tableau en deux sous-tableaux T1 et T2
calculer le minimum, min1 de T1
calculer le minimum, min2 de T2
retourner le minimum de min1 et min2
si T a plus qu’un element
sinon retourner l’unique element de T
Algorithme recursif
T1 T2
![Page 63: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/63.jpg)
Questions
On a parle d’amelioration, mais qu’est-ce que cela signifie?
Comment comparer deux algorithmes resolvant le meme probleme sur les memes instances?
![Page 64: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/64.jpg)
Questions
On a parle d’amelioration, mais qu’est-ce que cela signifie?
Comment comparer deux algorithmes resolvant le meme probleme sur les memes instances?
Comparer deux algorithmes
comparer les vitesses d’execution sur les memes instances algorithme efficace
![Page 65: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/65.jpg)
Questions
On a parle d’amelioration, mais qu’est-ce que cela signifie?
Comment comparer deux algorithmes resolvant le meme probleme sur les memes instances?
Comparer deux algorithmes
comparer les vitesses d’execution sur les memes instances algorithme efficace
compter le nombre d’operations elementaireseffectuees lors du deroulement de l’algorithme
aujourd’hui: 1 operation elementaire ∼ 1 nanoseconde (10−9 s)
Etude de la complexite en temps
choisir une bonne structure de donnees
![Page 66: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/66.jpg)
Questions
On a parle d’amelioration, mais qu’est-ce que cela signifie?
Comment comparer deux algorithmes resolvant le meme probleme sur les memes instances?
Comparer deux algorithmes
comparer les vitesses d’execution sur les memes instances algorithme efficace
comparer l’espace necessaire en memoire selon les instances
choisir une bonne structure de donnees
Etude de la complexite en espace
![Page 67: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/67.jpg)
Questions
On a parle d’amelioration, mais qu’est-ce que cela signifie?
Comment comparer deux algorithmes resolvant le meme probleme sur les memes instances?
Comparer deux algorithmes
comparer les vitesses d’execution sur les memes instances algorithme efficace
comparer l’espace necessaire en memoire selon les instances
lisibilite de l’algorithme, simplicite du principe, simplicite de l’implementation...
Attention il existe des algorithmes pour lesquels on ne connait pas de solution efficace!
![Page 68: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/68.jpg)
Le probleme du voyageur de commerce
![Page 69: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/69.jpg)
Le probleme du voyageur de commerce
ronde la plus courte passantpar tous les villages?
![Page 70: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/70.jpg)
Le probleme du voyageur de commerce
ronde la plus courte passant
Pas d’autre algorithme connu que decalculer toutes les rondes possibles!Pas de solution efficace!
par tous les villages?
![Page 71: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/71.jpg)
n2
n5
2n
nn
20 40 60 100 300
12500 ms 1
625 ms 1278 ms 1
100 ms 111 ms
3 ms 110 s 78
100 s 10 s 40, 5min
1 ms 18, 3min 36, 5annees
4.1011
siecles...
3, 3.107
siecles...
n taille de la donnee
nombres d’operations elementaires
aujourd’hui: 1 operation elementaire ∼ 1 nanoseconde (10−9 s)
![Page 72: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/72.jpg)
n2
n5
2n
nn
20 40 60 100 300
12500 ms 1
625 ms 1278 ms 1
100 ms 111 ms
3 ms 110 s 78
100 s 10 s 40, 5min
1 ms 18, 3min 36, 5annees
4.1011
siecles...
3, 3.107
siecles...
n taille de la donnee
nombres d’operations elementaires
aujourd’hui: 1 operation elementaire ∼ 1 nanoseconde (10−9 s)
Et il existe des probleme qu’on ne sait pas resoudre avec un algorithme!
![Page 73: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/73.jpg)
Et il existe des probleme qu’on ne sait pas resoudre avec un algorithme!
Le probleme de l’arret : peut-on ecrire une algorithme A qui
pour tout algorithme B et toute instance I
determine si B s’arrete pour la donnee I?
![Page 74: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/74.jpg)
Et il existe des probleme qu’on ne sait pas resoudre avec un algorithme!
Le probleme de l’arret : peut-on ecrire une algorithme A qui
pour tout algorithme B et toute instance I
determine si B s’arrete pour la donnee I?
NON
![Page 75: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/75.jpg)
L’algorithme d’Euclide (∼ 300 avant J.C.)
Calcule le pgcd de deux nombres
![Page 76: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/76.jpg)
L’algorithme d’Euclide (∼ 300 avant J.C.)
Calcule le pgcd de deux nombres
30 21
![Page 77: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/77.jpg)
L’algorithme d’Euclide (∼ 300 avant J.C.)
Calcule le pgcd de deux nombres
30 = 21 + 9
= 2 × 9 + 3 + 9
![Page 78: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/78.jpg)
L’algorithme d’Euclide (∼ 300 avant J.C.)
Calcule le pgcd de deux nombres
30 = 21 + 9
= 2 × 9 + 3 + 9= 2 × 9 + 3 + 9
![Page 79: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/79.jpg)
L’algorithme d’Euclide (∼ 300 avant J.C.)
Calcule le pgcd de deux nombres
30 = 21 + 9
= 2 × 9 + 3 + 9
= 2× 3 × 3 + 0 + 3 + 9
= 2 × 9 + 3 + 9
![Page 80: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/80.jpg)
L’algorithme d’Euclide (∼ 300 avant J.C.)
Calcule le pgcd de deux nombres
30 = 21 + 9
= 2 × 9 + 3 + 9
= 2× 3 × 3 + 0 + 3 + 9
= 2 × 9 + 3 + 9
3 est le pgcd de 30 et 21.
![Page 81: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/81.jpg)
L’algorithme d’Euclide (∼ 300 avant J.C.)
Calcule le pgcd de deux nombres
Principe:
pgcd(n1, 0) = n1
pgcd(n1, n2) = pgcd(n2, reste de la division de n1 par n2)
![Page 82: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/82.jpg)
L’algorithme d’Euclide (∼ 300 avant J.C.)
pgcd(n1 et n2 entiers positifs ou nuls){
if n2 = 0 {
return n1
}else {
}
return pgcd(n2, reste(n1, n2))
Calcule le pgcd de deux nombres
Principe:
pgcd(n1, 0) = n1
pgcd(n1, n2) = pgcd(n2, reste de la division de n1 par n2)
Algorithme:
![Page 83: Cours d'Elements d'Algorithmiqueamicheli/Ens/EA3/cours.pdf · Cours d'Elements d'Algorithmique Les charges de TDs Juliusz Chroboczek Victor Lanvin Antonio Bucciarelli Info 4 Info](https://reader033.vdocuments.pub/reader033/viewer/2022060100/60ae987b1cc4c1007835ef6d/html5/thumbnails/83.jpg)
Conclusion
Connaıtre des algorithmes permet d’en concevoir de nouveaux regit par un principe similaire
Un algorithme doit etre efficace pour pouvoir donner une reponse dans un temps raisonnable
en utilisant une place en memoire raisonnable.
lecture, modification et ecriture d’algorithmes
etude de la complexite d’un algorithme