40
ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse d’un problème -représentation arborescente -Algorithmes simples -la séquence -l’alternative -la répétition (boucle itérative) -la récursivité

ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Embed Size (px)

Citation preview

Page 1: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

ALGORITHMIQUE

Plan du cours

-Généralités -définition -importance -analyse d’un problème -représentation arborescente

-Algorithmes simples -la séquence -l’alternative -la répétition (boucle itérative) -la récursivité

Page 2: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Plan du cours (suite)

-Algorithmes complexes : les tris -tri par sélection -tri par insertion -tri bulle -évaluation de la complexité d’un tri -tri rapide (quicksort) -tri par fusion

-Structures de données linéaires -les tableaux -les listes chaînées

Page 3: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Plan du cours (suite)

-Structures de données avec embranchement - les arbres

-Méthodes de recherche -séquentielle -dichotomique -par arbre binaire -par table de symboles -par adressage dispersé (hachage)

Page 4: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Généralités

Algorithme = suite d’opérations nécessaires et suffisantes à l’accomplissement d’une tâche

Exemples : -résoudre l’équation du second degré -assembler un produit fini -organiser une expédition

Page 5: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Etapespour résoudre un problème sur ordinateur

1. Analyse du problème (langage courant)

2. Conception de l’algorithme (pseudo-langage ou

organigramme)

3. Ecriture du programme (langage informatique - C, Pascal etc)

Page 6: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Schéma des étapes

Problème à résoudre

Algorithme

Programme source

saisie (clavier)

Page 7: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Analyse du problème à résoudre

Analyse descendante : diviser le problème en éléments simples

Analyse ascendante : composer le problème à partir d’éléments simples

Page 8: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Etapes de l’analyse descendante

-Diviser le problème en sous-problèmes de moindre difficulté

-Continuer la division jusqu’aux opérations élémentaires

-Marquer à chaque division la filiation

Page 9: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Schémad’analysedescendante

1

2

3

1.2.1

1.2.2

1.1

1.2

2.1

2.2

2.1.1

2.1.2

Page 10: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Arbred’analysedescendante

racine (problème posé)

12

3

1.1 1.2

1.2.1 1.2.2

2.1 2.2

2.1.1 2.1.2

Page 11: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Algorithmes simples :

-La séquence

-L’alternative (la sélection)

-La répétition - l’itération - la récursivité

Page 12: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

La séquenceSuites d’étapes parcourues successivement

action 1

action 2

action n

organigramme énoncés

énoncé 1

énoncé 2....énonce n

Page 13: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Exemple d’algo séquentiel

Afficher le carré d’un nombre

lire V

P V*V

écrire P

Énoncés:

Var V, P : ENTIERLire VP V*VÉcrire P

= affectation

Page 14: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Etapes de la séquence

1. Étapes traitées une par une.

2. Chaque étape une seule fois (pas de répétitions ou d’omissions).

3. L’ordre d’exécution = l’ordre d’écriture.

4. La dernière étape finit l’algorithme.

Page 15: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Caractéristiques de la séquence

Structure algorithmique primitive : -rigide -déroulement fixe -ne permet pas des choix

Page 16: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

La sélection ou l’alternative

Algorithme qui permet une ou plusieurs alternatives

SI « test » vrai

ALORS action 1

SINON action 2

Permet un choix entre les deux actions.

Page 17: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

La sélection imbriquée

Si « test 1 »

ALORS « action 1»

SINON SI « test 2 »

ALORS « action 2 »

SINON « action 3 »

Page 18: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Exemple : choix du plus grand nombre

X > Y ?

X > Z ? Y > Z ?

Choisir X Choisir Z Choisir Y Choisir Z

test

testtesttest

si non comparer Y et Zsi oui comparer X et Z

Arbre de raisonnement

Page 19: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Types d’alternatives

à une branche à deux branches à plusieurs branches

test

test 1

test

énoncé

vrai

faux énoncé 1 énoncé 2

action

test 2 test 3

Page 20: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Les boucles itératives

Algorithme répétitif à boucle du type

1. TANT QUE (while)

2.JUSQU’À CE QUE (until)

3.POUR (for)

1&2 : répétitions indéfinies (nombre inconnu de rép.)3 : répétitions définies (nombre connu de répétitions)

Page 21: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Représentations graphiques

test

testénoncé

énoncé

faux

vrai

TANT QUE le test est vrai répéter l’énoncé

(le test AVANT l’énoncé)

répéter l’énoncé

JUSQU’À ce que la condition soit vraie

(le test APRES l’énoncé)

vrai

faux

Page 22: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

La boucle « pour » (for)

Répétition gérée par un compteurForme générale: REPETER N fois (N donné) un corps de boucle

Exemple: calcul de la factorielle

var N, F, I, : ENTIERlire N [N >= 0]F 1Si N > 0 alors pour I variant de 1 à N répéter F F*Iécrire F

Page 23: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Algorithmes imbriqués(alternative + répétition)

EX :Nombre de notes supérieures à dix et supérieures à 18 sur un total connu

1. Ecris: « Quel est le nombre total de notes ? » Lis Nombre En SUP10 RANGE 0 //Initialisation EN SUP18 RANGE 0 //des compteurs

2. /*Traitement */ TANT QUE NOMBRE > 0 REPETE (2.1) ECRIS « Tapez une note » LIS NOTE SI NOTE > 10

Page 24: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Suite:

…ALORS (2.1.1) EN SUP10 RANGE (SUP10 + 1) SI NOTE > 18 ALORS (2.1.1.1) EN SUP18 RANGE (SUP18 + 1) SINON RIEN SINON RIEN EN NOMBRE RANGE NOMBRE – 1

3. /* Edition des résultats */ ECRIS « Le nombre de notes supérieures à 10 est », SUP10 ECRIS « Le nombre de notes supérieures à 18 est », SUP18

Page 25: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

La récursivité

•Concept fondamental:

• -en mathématique: relation de récurrence

• -en informatique : procédures récursives

•Algorithme récursif:

• -qui s’appelle lui-même

• -appels de plus en plus « simples »

• -le dernier appel a une solution directe

• (=condition d’arrêt)

Page 26: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Exemple: la factorielle

Définition récurrente: N! = N(N – 1)! Pour N>=1 avec 0! = 1

Algorithme récursif:

SI N = 0 ALORS réponse = 1 SINON réponse = N*fact(N – 1)

Page 27: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Exemple: 3!

3 * Fact (2) 3 * 2 = 6

empiler 2 * Fact (1) 2 * 1 = 2 dépiler 1 * Fact (0) 1 * 1 = 2

= 1 retour dans la Pile

Fonctionnement de la pile: LIFO (Last In First Out)

Page 28: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Types de stratégies récursives

-ascendante -descendante -par divisions successives

Exemple: Somme des carrés des nombres de m à nSomme (m, n) = m² + (m+1)² +….+ n²Somme (5, 10) = 5² + 6² + 7² + 8² + 9² + 10²

Page 29: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Algo récursif ascendent

SI l’intervalle m:n comprend plus d’un nombre ALORS ajouter m² à la somme des carrés dans l’intervalle (m+1): nSINON la solution est m²

Somme (5, 10) = 25 + somme (6, 10) 36 + somme (7, 10) empile 49 + somme (8, 10) 64 + somme (9, 10) dépile: 81 + somme (10, 10)100+81+64+49+36+25=355 100

Page 30: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Algo récursif descendant

SI l’intervalle m:n comprend plus d’un nombre ALORS ajouter n² à la somme des carrés dans l’intervalle m: (n-1)SINON la solution est n²

Somme (5, 10) = 100 + somme (5, 9) 81 + somme (5, 8) empile 64 + somme (5, 7) 49 + somme (5, 6) dépile: 36 + somme (5, 5) 25+36+49+64+81+100=355 25

Page 31: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Algorithme récursif par divisions

SI l’intervalle m:n comprend plus d’un nombre ALORS relancer la somme sur les intervalles: m:demi et (demi+1):n avec demi = (m+n)/2SINON la solution est m²

Page 32: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Arbre de l’algo par divisions355

somme (5, 10) 110 245

somme(5, 7) somme(8,10)

61 49 145 110

somme(5,6) somme(7,7) somme(8,9) somme(10,10)

25 36 64 81

somme(5,5) somme(6,6) somme(8,8) somme(9,9)

25 36 49 64 81 100

Page 33: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Inversion de chaîne

Exemple: STAR RATS

L’idée de base:-enlever la première lettre : TAR-inverser le reste du mot : RAT-ajouter la lettre enlevée : RATS

L’algorithme récursif : SI chaîne formée d’une seule lettre ALORS l’écrire SINON ôter première lettre inverser le reste ajouter la lettre ôtée

Page 34: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Etapes de l’inversion

SI « star » contient une lettre ALORS l’écrire SINON ôter « s » on empile « s » inverser « tar »

SI « TAR » contient une lettre ALORS…. SINON ôter « t » on empile « t » inverser « ar » Dépile (LIFO):SI « ar » contient une lettre ALORS… SINON ôter « a » on empile « a » RATS inverser « r »

SI « r » contient une lettre ALORS l’écrire on empile « r »

Page 35: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Les chaînes de caractères

Chaîne = suite de lettres, chiffres ou autres symbolesEx: L’année 2001 espace blanc = caractère

Chaînes constantes: ne peuvent être modifiées (ex: "entrez un nombre" )Chaînes variables : accepte divers contenus (identificateur précédé de #)

Ex: En #SOMME range "5 + 8"

identific chaîne non calculable

Déclaration : Chaîne Somme(3)

Page 36: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Opérations sur les chaînes

-La concatenation (symbole | ) en #CH range #CH1 | #CH2 (CH contient CH1 et CH2 mises bout à bout)

-Traitement des sous-chaînes en #CH1 range #CH2 (5,3) (CH1 contient la sous-chaîne de longueur 3 qui débute au caractère 5 de CH2)

-Comparaison de chaînes (par ordre alphabétique): "beau" < "car"  "beau" > "bas"

Page 37: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Les tableauxstructures de données linéaires

1. Les tableaux à une dimension (vecteurs)

Suite d’éléments de même nature ayant un identificateur commun (nom) vecteur Tab (N) tableau à N éléments (Tab = identificateur)Tab = (Tab(1), Tab(2),….,Tab(N) 1, 2, …,N = indices

Exemple: vecteur mois (12)__________________________________________________________|31|_28_|_31_|_30_|_31_|_30_|_31_|_31_|_30_|_31_|_30_|_31_|_______ 1 2 3 4 ……………………………………….. 12 (indices)

mois = (31, 28, 31,……………………31)mois (2) = 28 mois (12) = 31

Page 38: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Comptage des éléments nuls d’un tableau

Analyse1.Lecture des N éléments du tableau2.Commencer par le 1er élément du tableau TANT QUE tous les éléments n’ont pas été examinés Répète (2.1) Si le i-ème élément est nul ALORS (2.1.1) le comptabiliser SINON rien Passer à l’élément suivant

Algorithme1.Préparation ECRIS « Donnez le nombre d’éléments du tableau » LIS N VECTEUR TAB (N) //déclaration du tableau ECRIS « Donnez les éléments du tableau » LIS TAB

Page 39: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Suite de l’algorithme

2. COMPTE 0 //initialisation des variables I 1 //I et COMPTE TANT QUE I <= N REPETE (2.1) SI TAB (I) = 0 ALORS (2.1.1 COMPTE COMPTE + 1 SINON rieN I I + 1

3. ECRIS « Il y a », COMPTE, « éléments nuls »

Page 40: ALGORITHMIQUE Plan du cours -Généralités -définition -importance -analyse dun problème -représentation arborescente -Algorithmes simples -la séquence -lalternative

Tableaux à deux dimensions(matrice)

Eléments de même nature arrangés en lignes et colonnes matrice Mat (L,C)L = nombre de lignesC = nombre de colonnes

Mat (1,1) Mat (1,2) ………….Mat (1,C) Mat (2,1) Mat (2,2)…………..Mat (2,C) Mat (3,1)……….. . . Mat (L, 1)………………………Mat (L,C)

Mat (3,5) = élément de la 3ème ligne et 5ème colonne