2

Click here to load reader

Algorithmes

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}