Académique Documents
Professionnel Documents
Culture Documents
1n +lgorithme est une procdure de c+lcul )ien d$inie permett+nt de rsoudre un pro)l2me donn
Supports du cours
Le cours sinspire de :
Introduction lalgorithmique. Cormen Leiserson !i"est Stein 2e dition How to think about algorithms. #e$$ %dmond. 200& 'ol(copi 'ro$. !o)ert Cori Supports de cours *r+nsp+rents 'ro$. A. ,il+ni
'ro)l2me
1n pro)l2me est l+ rel+tion dsire entre lentre 4une "+leur ou un ensem)le de "+leurs5 et l+ sortie 4une "+leur ou un ensem)le de "+leurs5 1ne inst+nce dun pro)l2me est tout 6eu de donnes de ce pro)l2me Lalgorithme est l+ suite dt+pes de c+lcul qui tr+ns$orment lentre en sortie
2 3
8e l+lgorithme +u progr+mme
Implmenter un +lgorithme signi$ie le tr+duire d+ns un l+ng+ge de progr+mm+tion 4c 6+"+ c<< etc.5 pour pou"oir le-cuter 9 l+ide dun ordin+teur 'our implmenter l+lgorithme il $+ut choisir l+ $+=on de reprsenter les donnes structures des donnes
;
'seudo:code Algorithme
Algo(a,b) ------; --------; --------------; ---------; ---------; --------------;
%nt@te de l+lgorithme
Aom de l+lgorithme: Algo entre: + )
Corps de l+lgorithme:
instructions ? sp+r+teur dBinstruction
10
Construction de l+lgorithme
Conce"oir et dcrire l+lgorithme >ri$ier l+ correction: l+lgorithme termine pour ch+que inst+nce en entre en produis+nt l+ )onne sortie An+l(ser l+lgorithme: comprendre les ressources ncess+ires 9 un +lgorithme 4temps de c+lcul esp+ce de mmoire etc5? t+)lir si un +lgorithme est plus efficace quun +utre
&
Algorithme et donnes
'our rsoudre le pro)l2me un +lgorithme + )esoin de reprsenter org+niser et m+nipuler les donnes 4que ce soit des entres des donnes +u-ili+ires ou le rsult+t5
11
>+ri+)le
1ne "+ri+)le poss2de
un nom : un c+r+ct2re ou une ch+Cne de c+r+ct2res un t(pe : )oolen entier rel t+)le+u t(pe comple-e D une "+leur : Cette "+leur peut "+rier pend+nt le-cution de l+lgorithme
12
*+)le+u
1n t+)le+u permet de m+nipuler un gr+nd nom)re de "+ri+)les de m@me t(pe en utilis+nt un seul nom pour le t+)le+u et un entier positi$ +ppel indice qui permet d+"oir +cc2s 9 toutes les "+ri+)les type *I1..nJ : dcl+r+tion dun t+)le+u de n "+ri+)le de t(pe type Les Kc+sesL dun t+)le+u * de t+ille n sont repres p+r: *I1J *I2J D*InJ Ch+que *IiJ iM1 2 D nN est une "+ri+)le
1E 17
A$$ect+tion
- %?
*+)le+u : e-emple
entier *IEJ? FG dcl+r+tion dBun t+)le+u dBentiers de t+ille EGF
1."+luer % :
ch+que "+ri+)le de % est rempl+ce p+r s+ "+leur cour+nte puis les opr+tions de % sont e$$ectues sur ces "+leurs
A$$ect+tion: %-emples
entier - 0? FG dcl+r+tion de "+ri+)les GF FG - "+ contenir des entiers GF FG "+leur initi+le H 0 GF entier (? FG +utre "+ri+)le non:initi+lise GF FG "+leur initi+le non d$inie GF (-<E? ((<1? (-G(?
13
,+trice
1ne m+trice est un t+)le+u 9 deudimensions Soit , une m+trice de t+ille nPm 4n lignes et m colonnes5 ,IiJI6J est l+ Kc+seL de , correspond+nt 9 l+ i:2me ligne et 9 l+ 6:2me colonne Type ,I1..nJI1..mJ : dcl+r+tion dune m+trice nPm dont les "+ri+)les sont de t(pe type Ch+que ,IiJI6J iM1 2 D nN et 6M1 2 D mN est une "+ri+)le
1&
Instruction retourner
retourner E; ren"oie l+ "+leur de le-pression % Lorsque cette instruction est e-cute l+lgorithme s+rr@te
%-pression Qoolenne
Cest une e-pression qui s"+lue 9 >!AI ou FA1R 'eut contenir des opr+teurs de comp+r+isons
19
Instruction conditionnelle
si (condition) alors instruction1 finsi condition est une e-pression )oolenne si condition est "+lue >!AI e-cute instruction1 sinon ne $+it rien
20
%-pression Qoolenne %
Xn peut com)iner des opr+teurs de comp+r+ison 9 l+ide des opr+teurs %* X1 AXA % 4opr+nde15 %* 4opr+nde25 % est "+lue 9 >!AI si et seulement si les deuopr+ndes sont "+lus 9 >!AI % 4opr+nde15 X1 4opr+nde25 % est "+lue 9 >!AI si et seulement si +u moins un des deu- opr+ndes est "+lus 9 >!AI % AXA 4opr+nde5 l+ "+leur de % est loppose de l+ "+leur de son opr+nde
2E
Instruction conditionnelle
si (condition) alors instruction1 sinon instruction2 finsi condition est une e-pression )oolenne si condition est "+lue >!AI e-cute instruction1 sinon e-cute instruction2
21
Qoucle
'ermet de$$ectuer une instruction ou une suite dinstructions plusieurs $ois Xn utiliser+ les )oucle tant que 4Yhile5 et pour 4$or5 pour structurer une suite dinstructions
2.
1n pro)l2me de c+lcul
'ro)l2me du 'lus Zr+nd 8i"iseur Commun C+lculer le plus gr+nd di"iseur commun 9 deu- nom)re entiers positi$s Entre: deu- entiers positi$s + ) Sortie: le plus gr+nd di"iseur commun 9 + et ) %-emple dinst+nce les deu- entiers 2 et 3
2&
27
29
Qoucle pour
'ermet de rpter une instruction ou une suite dinstructions un nom)re donn de $ois Pour 4"+ri+)le enti2re) de 4e-pr. enti2re) 4e-pr. enti2re) faire
instruction1; instruction2;
Fin pour
Algorithme Somme]'remiersA
Somme_PremiersN(n) (s$; our i de 1 ! n faire ss)i; fin our retourner s; *
E.
1ne e-cution
Inst+nce : 1. &
\t+pe initi+lement 1 2
Problme du Tri
Entre: suite de n entiers T+1 +2 D +nV
a
14 8 6
b
8 6 2
a mod b
6 2 0
Sortie: permut+tion T+1 +2 D +nV de l+ suite donne en entr de $+=on que +1 +2D+n
E2
E3
"ri#$nsertion(+,n)
"ri#$nsertion (+,n)/ + repr,sente %a suite d-entiers trier / our . de 2 ! n faire c%, +/.0; i .-1; tant que % i!$ E+ +/i0!c%, & +/i)10 +/i0; i i-1; fin tant que +/i)10 c%,; fin our retourner +
EE E7
i
i= 1
n= c i 2 i
i= 0
E;
n= c i 2 i
i= 0
E&