ALGORITHMIQUE Plan du cours Généralités -définition -importance

Slides:



Advertisements
Présentations similaires
Algorithmes et structures de données (avancées) Cours 1+2
Advertisements

Explorer un espace d’états
Introduction a L’algorithme
Tris.
Chapitre annexe. Récursivité
Algorithmique (suite)
Algorithmes et structures de données
Fonctions & procédures
Structures de données et complexité
Structures de données et complexité LIFO – FILO – FIFO – etc…
Sensibilisation à l’Algorithmique
Introduction à l’Algorithmique
Sensibilisation à l’Algorithmique et structure de données
Calculs de complexité d'algorithmes
DECLARATION DE VARIABLES
La logique algorithmique
LA LOGIQUE ALGORITHMIQUE. Algorithme Définition Ensemble dopérations Effectuées dans un ordre logique Afin dobtenir un résultat, Afin de résoudre un problème.
Algorithmique Résume.
Les Algorithmes de tri.
II- Les structures de contrôle à condition d’arrêt
Les Structures de contrôles itératives
1 UMLV Optimalité des tris par comparaisons : O(n logn) Classements linéaires Tris lexicographiques Tri lexicographique.
Exercices Algorithmiques
Chap. 1 Structures séquentielles : listes linéaires
5. Les structures répétitives
Lycée Louis Vincent SEANCE 6 Python Les listes Lundi 25 novembre 2013.
Section VI Structures répétitives (suite)
Utilisation des tableaux
Chapitre IV. Structures linéaires (piles, files, listes chaînées)
Les bases de l’Algorithmique
Références Bibliographiques
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Structures de données linéaires
Récursivité.
Introduction à l’algorithmique
Démarche de résolution de problèmes
Algorithmique et Programmation
Les éléments de base de l’algorithmique
Les structures de données arborescentes
Python La structure itérative
ALGORITHMIQUE en classe de seconde
Algorithmique et Programmation
Les structure d’un programme :
Présentation Structures de Données et TDA
Semaine #1 INF135 par Frédérick Henri.


ALGORITHME DE TRI Le tri par insertion.
Chapitre 6 Les traitements avancés
Méthodes de tri.
Structures de contrôle
ETNA – 1ème année Guillaume Belmas –
1 1 Huitième journée Quelques algorithmes. 2 Définition Description des tâches pour que celles-ci soient aisément programmables Différent d’une méthode.
Cours LCS N°4 Présenté par Mr: LALLALI
Démarche de résolution
Introduction au langage C : Structures de contrôle 1 ère année Génie Informatique Dr Daouda Traoré Université de Ségou
Initiation à l’Algorithmique
2005/2006 Structures de Données Introduction à la complexité des algorithmes.
CPI/BTS 2 Algorithmique & Programmation La récursivité Algo – Prog CPI/BTS2 – M. Dravet – 14/09/2003 Dernière modification: 14/09/2003.
Cours 5 - Trois algorithmes de tri d'un tableau
Algorithmes de tri.
Algorithmique Tableaux de données
Définition Un algorithme est l’énoncé d’une séquence d’actions primitives réalisant un traitement pouvant être exécuté par un processeur bien défini dans.
02/10/2015Les structures de contrôle1 COURS A2I12 Initiation à l'algorithmique illustrée par le langage C Guillaume BOURLET Département GEII IUT Sénart/Fontainebleau.
Objets et Actions Élémentaires.
Algorithmique Boucles et Itérations
L'exécution d'un programme nécessite l'utilisation des ressources de l'ordinateur : temps de calcul pour exécuter les opérations, et l'occupation de la.
BASE DE L’ALGORITHMIE.  Un système d’instructions.  Pour résoudre d’un problème ou d’une classe de problèmes  Recette de cuisine pour faire un gâteau.
ALGORITHME ET PROGRAMMATION RÉVISION Informatique et Sciences du Numérique.
M. BENJELLOUN : 2005 Le but final est de programmer un jeu où l'ordinateur choisira un nombre aléatoire entre 0 et 100 que vous devez deviner.
Transcription de la présentation:

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é

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

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)

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

Etapes pour résoudre un problème sur ordinateur Analyse du problème (langage courant) Conception de l’algorithme (pseudo-langage ou organigramme) Ecriture du programme (langage informatique - C, Pascal etc)

Schéma des étapes Algorithme Problème à résoudre Programme source saisie (clavier)

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

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

Schéma d’analyse descendante 1.1 1 1.2.1 1.2 1.2.2 2.1.1 2.1 2 2.1.2 2.2 3

Arbre d’analyse descendante racine (problème posé) 1 2 3 1.1 1.2 2.1 2.2 1.2.1 1.2.2 2.1.1 2.1.2

Algorithmes simples : -La séquence -L’alternative (la sélection) -La répétition - l’itération - la récursivité

La séquence Suites d’étapes parcourues successivement énoncé 1 organigramme énoncés action 1 énoncé 1 énoncé 2 . énonce n action 2 action n

Exemple d’algo séquentiel Afficher le carré d’un nombre lire V Énoncés: Var V, P : ENTIER Lire V P V*V Écrire P P V*V écrire P = affectation

Etapes de la séquence Étapes traitées une par une. 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.

Caractéristiques de la séquence Structure algorithmique primitive : -rigide -déroulement fixe -ne permet pas des choix

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.

La sélection imbriquée Si « test 1 » ALORS « action 1» SINON SI « test 2 » ALORS « action 2 » SINON « action 3 »

Exemple : choix du plus grand nombre Arbre de raisonnement X > Y ? test si oui comparer X et Z si non comparer Y et Z X > Z ? test Y > Z ? test test Choisir Z Choisir Y Choisir X Choisir Z

Types d’alternatives test test action énoncé 1 énoncé 2 énoncé à une branche à deux branches à plusieurs branches vrai test test action énoncé 1 énoncé 2 énoncé faux test 1 test 2 test 3

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)

Représentations graphiques faux test énoncé vrai énoncé faux test 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é)

La boucle « pour » (for) Répétition gérée par un compteur Forme générale: REPETER N fois (N donné) un corps de boucle Exemple: calcul de la factorielle var N, F, I, : ENTIER lire N [N >= 0] F 1 Si N > 0 alors pour I variant de 1 à N répéter F F*I écrire F

Algorithmes imbriqués (alternative + répétition) EX :Nombre de notes supérieures à dix et supérieures à 18 sur un total connu Ecris: « Quel est le nombre total de notes ? » Lis Nombre En SUP10 RANGE 0 //Initialisation EN SUP18 RANGE 0 //des compteurs /*Traitement */ TANT QUE NOMBRE > 0 REPETE (2.1) ECRIS « Tapez une note » LIS NOTE SI NOTE > 10

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

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)

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)

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)

Types de stratégies récursives -ascendante -descendante -par divisions successives Exemple: Somme des carrés des nombres de m à n Somme (m, n) = m² + (m+1)² +….+ n² Somme (5, 10) = 5² + 6² + 7² + 8² + 9² + 10²

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): n SINON 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

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

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)/2 SINON la solution est m²

Arbre de l’algo par divisions 355 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

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

SI « star » contient une lettre ALORS l’écrire 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 »

Les chaînes de caractères Chaîne = suite de lettres, chiffres ou autres symboles Ex: 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)

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"

Les tableaux structures 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

Comptage des éléments nuls d’un tableau Analyse 1.Lecture des N éléments du tableau 2.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 Algorithme 1.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

2. COMPTE  0 //initialisation des variables I  1 //I et COMPTE 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 »

Tableaux à deux dimensions (matrice) Eléments de même nature arrangés en lignes et colonnes matrice Mat (L,C) L = nombre de lignes C = 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