Vous êtes sur la page 1sur 17

1 de 16

Cours dAlgorithmique

Florent Hivert
Ml : Florent.Hivert@lri.fr
Adresse universelle : http://www.lri.fr/hivert
2 de 16

Informations pratiques

25 heures de cours ;

25 heures de travaux dirigs ;

valuation :
2 contrles + examen final + mini projets.
3 de 16

Plan du cours

1 Introduction ;
2 Outils mathmatiques ;
3 Tableaux et type de donne abstrats ;
4 Listes chanes ;
5 Arbres ;
6 Graphes.
4 de 16

Gnralits sur le traitement de linformation

Les ordinateurs sont utiliss pour

le traitement dinformations ;

le stockage dinformations.
5 de 16

Gnralits sur le traitement de linformation (2)

Le schma global dune application informatique est toujours le


mme :
Rception Traitement des mission

dinformations informations dinformations dduites

Exemple :
rception de somme de ces n valeurs mission de la
n valeurs et division moyenne
numriques du rsultat par n arithmtique
6 de 16

La notion de programme

Tout traitement demand la machine, par lutilisateur, est


effectu par lexcution squence doprations appeles
instructions. Une suite dinstructions est appele un programme.

Retenir
Un programme est une suite dinstructions permettant une
systme informatique dexcuter une tche donne
crit dans un langage de programmation comprhensible
(directement ou indirectement) par un ordinateur.

Donnes = Programme = Rsultats


7 de 16

Quest-ce que la programmation ?

Retenir
criture dun programme dans un langage de programmation
donne.
Langage de programmation : ensemble de rgle de vocabulaire et
de grammaire comprhensible par un ordinateur.

int fun(int x) {
x = x + 1;
return x;
}
void main(void) {
printf("%i", fun(2));
}
8 de 16

La notion dalgorithme

Pour rsoudre un problme de manire informatique il y a un


cheminement mthodique respecter :

nonc Programme
Problme Algo. Rsultats
algo. (instructions)
9 de 16

La notion dalgorithme (2)

Dfinition (Notion dAlgorithme)

description formelle dun procd de traitement qui permet,


partir dun ensemble dinformations initiales, dobtenir des
informations dduites ;
succession finie et non ambige doprations ;
se termine toujours (Note : semi-algorithme).

Dfinition (Notion de Programme)

suite dinstructions dfinies dans un langage donn ;


dcrit un algorithme.
10 de 16
11 de 16
12 de 16

Exemple dalgorithme

Algorithme (Calcul de la moyenne dun tableau de notes)

Entres : un entier n, un tableau de n nombres virgules


Sorties : la moyenne des nombres du tableau

i est un entier ; s un nombre virgule.

initialiser s avec 0
pour i de 1 n faire
ajouter le i-me lement du tableau s
retourner s/n
12 de 16

Exemple dalgorithme

Algorithme (Calcul de la moyenne dun tableau de notes)

Entres : un entier n, un tableau de n nombres virgules


Sorties : la moyenne des nombres du tableau

i est un entier ; s un nombre virgule.

initialiser s avec 0
pour i de 1 n faire
ajouter le i-me lement du tableau s
retourner s/n

Quel est le nombre dadditions effectues par cet algorithme ?


13 de 16

Diffrentes problmatiques

terminaison : terminera en un temps fini.

complexit en temps : terminera en un temps born


(raisonnable).

complexit en espace : terminera en utilisant une quantit


de mmoire borne (raisonnable).

correction : si lalgorithme termine en donnant une


proposition de solution, alors cette solution est correcte.

compltude : pour un espace de problmes donn,


lalgorithme, sil termine, donnera toujours des propositions de
solutions.
14 de 16

Pourquoi faire

I will, in fact, claim that the difference between a bad


programmer and a good one is whether he considers his code or his
data structures more important. Bad programmers worry about the
code. Good programmers worry about data structures and their
relationships. Linus Torvalds (creator of Linux)

Algorithms + Data Structures = Programs. Niklaus Wirth


15 de 16

Objectifs du cours dalgorithmique

Concevoir des algorithmes simples ;

Analyser les performances dun algorithme :


notion de complexit ;

Algorithmes fondamentaux : description et complexit ;

Structures de donnes performantes :


tableaux dynamiques, tableaux tris, listes chanes, arbres,
tables de hachage, (graphes).
16 de 16

Bibliographie

Mots cls : algorithmique, analyse dalgorithmes.


Cardon A. et Charras C. Introduction lalgorithmique et
la programmation. Ellipses, 1996.
Cormen, Leiserson, Rivest et Stein, Introduction
lalgorithmique, Dunod, 2002.
Graham, Knuth et Patashnik, Mathmatiques concrtes,
Fondations pour lInformatique, International Thomson
publishing France, 1998.
Granjon, Algorithmes en Pascal et en langage C, Dunod, 2004.
Krob, Algorithmique et structures de donnes, Ellipses, 1989.
Froidevaux, Gaudel et Soria, Types de donnes et algorithmes
McGraw-Hill 1990 Ediscience International 1993, 577 pages