Click here to load reader
Upload
biram-diouf
View
8
Download
9
Embed Size (px)
DESCRIPTION
Algorithmes
Citation preview
Mathematiques discretesAlgorithmes
Cours 14, MATH/COSC 1056F
Julien Dompierre
Departement de mathematiques et dinformatiqueUniversite Laurentienne
13 octobre 2010, Sudbury
Abu Abd Allah Muhammad ben Musa al-Khawarizmi
Mathematicien perse, ne vers 783 a Khiva dans le Khwarezm qui adonne son nom, decede vers 850 a Bagdad.
Son nom, al-Khuwarizmi, latinise au Moyen Age en Algoritmi, puisen Algorisme par les Europeens, est a lorigine du mot algorithme,qui veut dire procedure.
Il est lauteur de louvrage intitule Al- abr wal-muqabalah, quisignifie La transposition et la reduction, publie en 825. Le termeal-jabr fut repris par les Europeens et devint plus tard le motalgebre.
Il est le premier a parler du systeme des chiffres indiens. On doitaussi a al-Khuwarizma la tradition consistant a appeler linconnuedune equation mathematique x .
Definition : algorithme
DefinitionUn algorithme est une procedure precise qui sert a resoudre unprobleme a laide dun nombre fini detapes.
Les algorithmes partages generalement plusieurs proprietes :
les entrees dont depend lalgorithme. les sorties qui resulte de lapplication de lalgorithme. la precision, les etapes sont claires et sans equivoque. la finitude, lalgorithme sarrete a coup sur apres un certain
nombre detapes.
lefficacite, lalgorithme est aussi rapide que possible pourobtenir le resultat.
la generalite, lalgorithme sapplique a toute une classe deproblemes.
Recherche de lelement maximale dans une suite finie
Voici le pseudocode dun algorithme qui trouve le plus grandnombre dans une suite finie de nombres entiers.
procedure TrouveLeMaximum(a1, a2, ..., an : entiers)MaximumActuel := a1pour i := 2 a ndebut
si ai > MaximumActuel alors MaximumActuel := aifin{MaximumActuel est le plus grand nombre de cette suite}
Calcul iteratif de n factoriel
Voici le pseudocode dun algorithme qui calcul de facon iteratif n!.
procedure factoriel(n : entier)produit := 1pour i := 2 a ndebut
produit := produit ifin{ produit correspond a n! }
Algorithme de fouille lineaire
Cet algorithme recherche un nombre dans une liste finie denombres.
procedure fouille lineaire(x : entier, a1, a2, ..., an : n entiers distincts)i := 1tant que (i n et x 6= ai)debut
i := i + 1finsi i n alors emplacement := isinon emplacement := 0{emplacement est lindice de lelement qui est egal a xou est egal a 0 si x nest pas dans la liste}
Algorithme de fouille binaire
Cet algorithme recherche un nombre dans une liste finie etordonnee de nombres.
procedure fouille binaire(x : entier, a1, a2, ..., an : n entiers croissants)i := 1 {i est lextremite gauche de lintervalle de recherche}j := n {j est lextremite droite de lintervalle de recherche}tant que i < jdebut
m := (i + j)/2si x > am alors i := m + 1sinon j := m
finsi x = ai alors emplacement := isinon emplacement := 0{emplacement est lindice de lelement qui est egal a xou est egal a 0 si x nest pas dans la liste}