Vous êtes sur la page 1sur 7

/uest ce quun +lgorithme0 IF109 : Algorithmique et structures de donnes

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

8u pro)l2me 9 l+lgorithme Algorithmique et structures de donnes


Introduction +u- +lgorithmes Les t+pes t(piques d+ns l+ construction des +lgorithmes sont : Spci$ier $ormellement le pro)l2me Sp+rer le pro)l2me en morce+u- plus petits et t(piquement plus $+ciles Construction de l+lgorithme: pour ch+que sous:pro)l2me un +lgorithme doit tre construit pour le rsoudre
7

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

Comme dcrire un +lgorithme


L+ng+ge n+tureldescription imprcise L+ng+ge de 8escription Algorithmique
+ussi +ppel L8A ou pseudo:code s(nt+-e cl+ire et concise +)str+it des l+ng+ges de progr+mm+tion 4e.g. C #+"+5

>+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

A$$ect+tion dBun "+ri+)le


x % x est le nom de l+ "+ri+)le % est une e-pression c+lcul+)le
% peut inclure des "+ri+)les des "+ri+)les ( compris l+ "+ri+)le x elle:m@me

*+)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

r+nge l+ "+leur de % d+ns l+


"+ri+)le x

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

entier s O 0 *I1J O 1? *I2J O 2? *IEJ O E? s O *I1J < *I2J < *IEJ?

1.L+ "+leur de - de"ient g+le +u rsult+t de lB"+lu+tion

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

HH g+lit SH di$$rent de T U in$rieur in$rieur ou g+l V W suprieur suprieur ou g+l


22

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.

Qoucle tant que


'ermet de$$ectuer une instruction ou une suite dinstructions t+nt que une expression boolenne condition est "+lue >!AI tant que(condition) instruction1; instruction2; fin tant que
23

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&

Qoucle tant que


A ch+que tour de )oucle l+ condition est "+lue et t+nt que s+ "+leur est >!AI les instructions sont e$$ectues Attention : si l+ condition est incorrecte il est possi)le de )oucler ind$iniment

Algorithme d%uclide 415


Soit + ) entiers positi$s + VH ) Si b di"ise a +lors le 'Z8C est g+l 9 b Sinon pgcd4+ )5 H pgcd4) r5 o[ r est le reste de l+ di". %uclidienne de + p+r )

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;

Algorithme d%uclide 425


Ide de lB+lgorithme : proc2der p+r t+pes en rempl+=+nt 9 ch+que t+pe le couple 4a b5 +"ec le couple 4b r5 o[ r est le reste de l+ di"ision de a p+r b Le c+lcul termine qu+nd r est gal 0 Le 'Z8C est g+l +u dernier di"iseur
2;

Fin pour

Algorithme 'ZC8 4ou d%uclide5


Pgcd(x,y) / x !" y entiers positifs / entier a x; entier b y; tant que (b#"$) r a mod b; / reste de %a di&' Euc%' de a par b / a b; b r; fin tant que retourner a;
E1

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

'ro)l2me Somme des n 'remiers %ntiers 'ositi$s


C+lculer l+ somme des n premiers entiers positi$s Entre: 1n entier positi$ nA Sortie: S ( n )=1 + 2 + 3 + . .. +n=
n

"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

%criture dun nom)re entier en )+se 2


*out nom)re entier scrit de $+=on unique sous l+ $orme dune somme de puiss+nces de 2 toutes di$$rentes. '+r e-emple 19H2.<21<20 et son criture en )+se 2 est 10011. 'lus gnr+lement lcriture du nom)re n en )+se 2 est g+le 9 ck ck- ! c" c c# si ci$#% & i' $#% %!%k& et si
k

n= c i 2 i
i= 0
E;

'ro)l2me criture en )+se 2


C+lculer l+ reprsent+tion en )+se 2 dun nom)re entier n Entre: un nom)re entier n Sortie: Tc^ c^:1D c2 c1 c0V tel que
iH M0 1 D ^N c iM0 1N et
k

n= c i 2 i
i= 0
E&

Algorithme \criture en )+se 2


'criture_base2(n) boo%een +/%o12(n)0; / tab%eau de %o12(n) ,%,2ents dans ($,1* / entier i $ ; tant que (n#"$) +/i0 (n 2od 2); i i)1; n n/2; fin tant que E9 retourner +
Ici F dsigne l+ di"ision enti2re de deu- 4ie ;F2 H E5

Vous aimerez peut-être aussi