Anzeige
Anzeige

Más contenido relacionado

Anzeige

COURS_ALGORITHME_SNINEH.pptx

  1. ALGORITHMIQUE ET PROGRAMMATION Année universitaire 2022-2023 sninehmohamed@gmail.com CRMEF - MARRAKECH
  2. Snineh Mohamed  Introduction  Définitions  Analyse et résolution d’un problème  Composants d’un algorithme ◦ Données ◦ Instructions entrées/sorties ◦ Affectation ◦ Structure séquentielle ◦ Structures conditionnelles ou alternatives ◦ Structures répétitives  Sous-algorithmes  Récursivité  Algorithmes de tri 2 INTRODUCTION
  3. Snineh Mohamed  Les algorithmes.  Les langages machines.  Les langages évolués : pascal, C, C++, Basic, Java, Python…  Un compilateur ou interpréteur est nécessaire pour traduire un programme écrit en un langage évolué en langage machine. INTRODUCTION 3
  4. Snineh Mohamed  Algorithme : ◦ mot dérivé du nom du mathématicien « AL KHWARIZMI » qui a vécu au 9ème siècle, était membre d’un académie des sciences à Bagdad . ◦ Entrée : instance du problème. ◦ Sortie : résultat(s) Entrée Sortie DÉFINITIONS 4
  5. Snineh Mohamed  Définition 1: ◦ Un algorithme représente une séquence d’instructions (Actions), logiquement ordonnées, qui permet de résoudre un problème donné. ◦ Un algorithme est lié à un problème. Algorithme  d’actions Résoudre Problème à Résoudre DÉFINITIONS 5
  6. Snineh Mohamed  Définition 2: ◦ Séquence d’étapes de calcul qui transforment les entrées en sortie. La sortie représente la solution d’un problème donné. ◦ Étude de la résolution de problèmes par la mise en œuvre de suites d'opérations élémentaires selon un processus défini aboutissant à une solution. Problème Algorithme Données +  d’actions Données Modélise 6 DÉFINITIONS
  7. Snineh Mohamed DÉFINITIONS ALGORITHMIQUE :  L’algorithmique est la science des algorithmes.  L’algorithmique s’intéresse à l’art de construire des algorithmes ainsi qu’à caractériser leur validité, leur robustesse, leur réutilisabilité, leur complexité ou leur efficacité. VALIDITÉ D’UN ALGORITHME  La validité d’un algorithme est son aptitude à réaliser exactement la tâche pour laquelle il a été conçu. ROBUSTESSE D’UN ALGORITHME  La robustesse d’un algorithme est son aptitude à se protéger de conditions anormales d’utilisation. 7
  8. Snineh Mohamed DÉFINITIONS RÉUTILISABILITÉ D’UN ALGORITHME  La réutilisabilité d’un algorithme est son aptitude à être réutilisé pour résoudre des tâches équivalentes à celle pour laquelle il a été conçu. COMPLEXITÉ D’UN ALGORITHME  La complexité d’un algorithme est le nombre d’instructions élémentaires à exécuter pour réaliser la tâche pour laquelle il a été conçu. EFFICACITÉ D’UN ALGORITHME  L’efficacité d’un algorithme est son aptitude à utiliser de manière optimale les ressources du matériel qui l’exécute. 8
  9. Snineh Mohamed ANALYSE ET RÉSOLUTION D’UN PROBLÈME Analyser et étudier le problème à résoudre Spécifier le modèle de Résolution : données et les formules mathématiques Écrire l’algorithme Traduire l’algorithme à un programme Exécuter le programme par un ordinateur afin d’obtenir des résultats Problème Modèle Algorithme Programme Résultats 9
  10. Snineh Mohamed  Un algorithme peut être représenté : ◦ Langage humain. ◦ Le pseudo-code:  Le pseudo-code est une représentation textuelle avec une série de conventions ressemblant à un langage de programmation (sans les problèmes de syntaxe)  plus pratique pour écrire un algorithme.  représentation largement utilisée. ◦ Langage informatique. REPRÉSENTATION D’UN ALGORITHME 10
  11. Snineh Mohamed Symbole Instruction DEBUT et FIN LIRE et ECRIRE TRAITEMENT ou CALCUL DECISON ou TEST RENVOIE ◦ Organigramme :  Un organigramme est la représentation graphique d'un algorithme. Les instructions sont représentées par des symboles graphiques normalisés qui sont: REPRÉSENTATION D’UN ALGORITHME 11
  12. Snineh Mohamed VUE GLOBALE D’UN ALGORITHME Entrée (Inputs) Sortie (Outputs) Algorithme Données +  d’instruction Traitements (instructions) Instructions des entrées Données intermédiaires Instructions des sorties 12
  13. Snineh Mohamed  Un algorithme est composé d'un certains nombre d'instructions qui manipulent des données : - Données d'un algorithme : ◦ Une donnée représente une information liée à un élément du problème traité par l’algorithme. Elle est caractérisée par 3 attributs:  Identificateur  Valeur  Type COMPOSANTS D'UN ALGORITHME 13
  14. Snineh Mohamed COMPOSANTS D'UN ALGORITHME • C’est un objet content une valeur fixe. • C’est un objet content une valeur pouvant être modifiée. • Dans un programme, ça représente une zone mémoire dans la RAM. Données Variable Constante - Données : Variables et constantes: 14
  15. Snineh Mohamed COMPOSANTS D'UN ALGORITHME - Données : Identificateur  Chaque donnée (Variable ou constante) manipulée par un algorithme est désignées par un nom unique : IDENTIFICATEUR.  Identificateur : c’est une chaîne de caractères alphanumérique (contenant uniquement des caractères alphabétiques [a-z, A-Z] et numériques [0-9]) en plus du caractère « _ » (Trait souligné) et qui ne commence pas par un caractère numérique. 15
  16. Snineh Mohamed - Données : Entrées et Sorties Données • Les données que l’utilisateur doit fournir à l’algorithme. Entrées (Inputs) • Les données que l’algorithme doit afficher à l’utilisateur. C’est les résultats de l’algorithme (Solution du Problème) Sortie(Outputs) • Données utilisées par l’algorithme pour le traitement lié au problème. Données Intermédiaires COMPOSANTS D'UN ALGORITHME 16
  17. Snineh Mohamed  Les types numériques : 17 TYPES DE DONNÉES
  18. Snineh Mohamed  Type date : (jour/mois/année)  Type booléen ◦ Le type booléen stocke uniquement les valeurs logiques VRAI et FAUX. ◦ On peut représenter ces notions abstraites de VRAI et de FAUX par tout ce qu'on veut : de l'anglais (TRUE et FALSE) ou des nombres (0 et 1).  Chaînes de caractères ◦ Les caractères sont notés entre apostrophes ou guillemets. ◦ Il contient tous les caractères utilisables (lettres, chiffres, ponctuation). ◦ Le type chaîne permet de décrire des objets. ◦ Les langages de programmation manipulent les chaînes de caractères :  Concaténation  Sous-chaînes  … 18 TYPES DE DONNÉES
  19. Snineh Mohamed - Les opérateurs arithmétiques : Opérateur Fonction Exemple + Addition X+Y - Soustraction X-Y * Multiplication X*Y / Division X/Y ^ Puissance 2^3 Mod Reste division 17 mod 5 (=2) 19 COMPOSANTS D'UN ALGORITHME
  20. Snineh Mohamed - Les opérateurs relationnels (de comparaison) : Opérateur signification = Egal <> ou  Différent < Strictement inférieur > Strictement supérieur <= Inférieur ou égal >= Supérieur ou égal - Les opérateurs relationnels (de comparaison) : Opérateur signification NON Non logique OU Ou inclusif ET Et logique 20 COMPOSANTS D'UN ALGORITHME
  21. Snineh Mohamed  LES INSTRUCTIONS  Définition  Les actions élémentaires qui composent un algorithme sont appelées Instructions, car elles représentent des ordres à exécuter dans l'algorithme.  Instruction d'entrée : Lire  L'instruction Lire permet d'introduire une donnée  Instruction de Sortie: Ecrire  L'instruction Ecrire permet de restituer (sortir) une donnée  EXEMPLES : ◦ Prix  Lire ("Donner le prix: ") ◦ Ecrire ("Net à payer :" , Net) 21 COMPOSANTS D'UN ALGORITHME
  22. Snineh Mohamed  Affectation: Une affectation est l'opération qui permet de ranger la valeur d'une expression dans une variable. Dans un algorithme l'affectation est symbolisée par: ←  Exemples: X←20 : La valeur 20 est affectée à la variable X S←n1+n2 : La somme (n1+n2) est affectée à la variable S X←Y : La valeur de la variable Y est affectée à la variable X  Exercice : Ecrire un algorithme permettant de saisir 2 nombres et de permuter leurs valeurs. 22 COMPOSANTS D'UN ALGORITHME
  23. Snineh Mohamed  Ordre de priorité des opérateurs Pour les opérateurs arithmétiques, l'ordre de priorité est le suivant (du plus prioritaire au moins prioritaire) : ◦ ^ : (élévation à la puissance) ◦ * , / (multiplication, division) ◦ mod (modulo) ◦ + , - (addition, soustraction) En cas de besoin on utilise les parenthèses pour indiquer les opérations à effectuer en priorité. 23 COMPOSANTS D'UN ALGORITHME
  24. Snineh Mohamed  STRUCTURES DE CONTRÔLE Un algorithme décrit une suite d'instructions dont l'exécution ne se fait pas toujours dans l'ordre de leur écriture. Il peut y avoir dans certains cas des sauts de blocs d'instructions. Ces sauts sont contrôlés par une structure appelée structure de contrôle.  Un algorithme peut avoir trois structures: ◦ Structure séquentielle ◦ Structures conditionnelles ou alternatives ◦ Structure répétitive 24 COMPOSANTS D'UN ALGORITHME
  25. Snineh Mohamed STRUCTURE SÉQUENTIELLE On dit qu'un algorithme a une structure séquentielle lorsque les instructions s'exécutent d'une manière linéaire une après une du début jusqu'à la fin.  Exemple Variables NT1, NT2, NT3, MOY : Réel; Début LIRE (NT1); LIRE (NT2); LIRE (NT3); MOY← (NT1+ NT2+ NT3)/3; ECRIRE (MOY); Fin 25 COMPOSANTS D'UN ALGORITHME
  26. Snineh Mohamed  Structures conditionnelles Dans un algorithme ayant une structure alternative les instructions s'exécutent selon la réalisation d'une condition ou non. La condition est une expression logique, elle peut être simple ou composée.  Instruction Si … Alors … Sinon …Finsi Elle exprime le choix entre deux séquences d'actions en fonction de la valeur de la condition Syntaxes : Si condition alors Séquence1 Finsi Si Condition Alors Séquence1 Sinon Séquence2 Finsi Si Condition Alors Séquence1 SinonSi Condition alors Séquence2 SinonSi Condition alors Séquence3 … Sinon Séquence_n Finsi 26 COMPOSANTS D'UN ALGORITHME
  27. Snineh Mohamed  Condition composée ◦ Une condition composée est une condition formée de plusieurs conditions simples reliées par des opérateurs logiques: ET, OU, OU exclusif (XOR) et NON Exemples  x compris entre 2 et 6 : (x > 2) ET (x < 6)  n divisible par 3 ou par 2 : (n mod 3=0) OU (n mod 2=0)  deux valeurs et deux seulement sont identiques parmi a, b et c : (a=b) XOR (a=c) XOR (b=c) ◦ L'évaluation d'une condition composée se fait selon des règles présentées généralement dans ce qu'on appelle tables de vérité 27 C1 C2 C1 ET C2 C1 C2 C1 OU C2 C1 C2 C1 XOR C2 V V V V V V V V F V F F V F V V F V F V F F V V F V V F F F F F F F F F C1 NON C1 V F F V COMPOSANTS D'UN ALGORITHME
  28. Snineh Mohamed  Structures alternatives imbriquées  Exemple : Si condition_1 alors Si condition_2 alors instructionsA Sinon instructionsB Finsi Sinon Si condition_3 alors instructionsC Finsi Finsi 28 COMPOSANTS D'UN ALGORITHME
  29. Snineh Mohamed  Structure répétitive ou itérative (boucles) ◦ La structure répétitive permet de répéter une action ou une séquence d’actions tant qu’une condition est vraie. ◦ Une structure répétitive est aussi appelée boucle  La boucle tantQue …faire  Exemple Ecrire un algorithme qui demande à l’utilisateur une note comprise entre 0 et 20 jusqu’à ce que la réponse convienne. Tant que Condition(s) faire Instruction(s) Fin Tantque 29 COMPOSANTS D'UN ALGORITHME
  30. Snineh Mohamed  Structure répétitive La boucle Répéter … Jusqu’à  Exemple Ecrire un algorithme qui permet de vérifier le mot de passe saisi au clavier. L’utilisateur a droit à trois tentatives. Répéter Instruction(s) Jusqu’á Condition(s) 30 COMPOSANTS D'UN ALGORITHME
  31. Snineh Mohamed Notion du compteur  Initialisation d’un compteur : Compteur  Vi  Incrémentation d’un compteur Compteur  Compteur + incrément  Décrémentation d’un compteur Compteur  Compteur - incrément  Exemple : Ecrire un algorithme qui calcule pour un nombre entier N (N>=0) saisi au clavier, la somme : S=1+2+3+4+5+6+…..+N 31 COMPOSANTS D'UN ALGORITHME
  32. Snineh Mohamed  La boucle Pour ……FinPour Cette instruction permet la répétition d'un traitement un nombre déterminé de fois. Le nombre de fois est contrôlé par un compteur allant de la valeur initiale à la valeur finale. La progression se fait dans l’ordre croissant ou décroissant.  Exemple Ecrire un algorithme qui affiche les dix premiers nombres pairs. POUR Compteur  Vi A Vf [PAS DE Incrément] FAIRE Instruction(s); FinPour 32 COMPOSANTS D'UN ALGORITHME
  33. Snineh Mohamed  Imbrication des boucles: 33 COMPOSANTS D'UN ALGORITHME Pour | Répéter | Tant que | … FinPour | Jusqu’à Condition(s)| FinTantque | …
  34. Snineh Mohamed  Tableaux à une seule dimension : ◦ Structure de données qui permet de regrouper un ensemble de valeurs de même type sous un même nom de variable en les différenciant par un indice ou un index.  Syntaxes : ◦ nom_tableau : type_des_éléments [borne_inférieure .. borne_supérieure] ◦ nom_tableau : type_des_éléments [Taille_Maximale] ◦ La première case commence souvent par l’indice : 0 ◦ Par exemple, pour un tableau t de 5 entiers , on pourra écrire :  t : entier [0..4] ou bien t : entier [5] 34 TYPES DE DONNÉES : TABLEAUX 10 5 8 4 7 0 1 2 3 4 valeurs indices t
  35. Snineh Mohamed  Accès aux éléments du tableau t : ◦ Pour accéder à un élément du tableau, il suffit de préciser entre crochets l’indice de la case contenant cet élément : t[2]  Affectation d’un élément du tableau t à une variable: ◦ A ← t[3]  Modification d’un élément du tableau t : ◦ t[3] ← 99  Parcours des éléments d’un tableau : ◦ Les algorithmes utilisent des itérations permettant de faire un parcours complet ou partiel des différents éléments du tableau. 35 TYPES DE DONNÉES : TABLEAUX
  36. Snineh Mohamed  Tableaux à deux dimensions :  Syntaxes : ◦ nom_tableau : type_des_éléments [0..nb_lignes-1, 0 .. nb_colonnes-1] ◦ Par exemple : Un tableau t de 3 lignes et 4 colonnes.  t : entier [0..2,0..3] 36 TYPES DE DONNÉES : TABLEAUX 0 1 2 3 0 18 89 9 2 1 67 77 85 6 2 55 66 88 9
  37. Snineh Mohamed  Accès aux éléments d’un tableau à 2D : ◦ Nom_tableau[indice_ligne,indice_colonne ] ◦ t[1,2]  Affectation d’un élément du tableau t à une variable: ◦ a ← t[1,2]  Modification d’un élément du tableau t : ◦ t[1,2] ← 100  Parcours des éléments d’un tableau à 2D : ◦ Les algorithmes utilisent l’imbrication des boucles pour parcourir le tableau à 2D. 37 TYPES DE DONNÉES : TABLEAUX
  38. Snineh Mohamed  Utilité: ◦ Découper l’algorithme en sous-algorithmes pour les raisons suivantes:  Structuration;  Réutilisation et partage;  Pas de duplication du code  Offert une meilleure lisibilité car le lecteur peut comprendre ce que fait un sous-algorithme, uniquement à la lecture de son nom.  Construction des bibliothèques des sous-algorithmes.  … 38 SOUS-ALGORITHMES
  39. Snineh Mohamed  Définition : ◦ Un sous-algorithme est un bloc d’actions. Souvent il est déclaré dans la partie entête de l’algorithme principal puis appelé dans le corps de l’algorithme.  Syntaxe : ◦ Le sous-algorithme se compose :  nom du sous-algorithme;  liste éventuelle des paramètres et de leur type;  éventuellement le type de la valeur qu'elle renvoie  les déclarations locales (constantes ou variables);  les instructions qui calculent le résultat à retourner;  éventuellement au moins une instruction retourner qui renvoie la valeur résultat. 39 SOUS-ALGORITHMES
  40. Snineh Mohamed ◦ Syntaxe (suite): 40 SOUS-ALGORITHMES Sous-algorithme nom_sous_algo ([par1, par2, …]) : [type de retour du résultat] [Variables locales] Début Actions [retourner résultat] Fin
  41. Snineh Mohamed  Variables globales et variables locales: ◦ La portée d’une variable est l’ensemble des sous-algorithme où cette variable est connue. ◦ Une variable définie au niveau du programme principal est appelée variable globale. ◦ Une variable définie au sein d’un sous-algorithme est appelée variable locale. ◦ Lorsque le nom d’une variable locale est identique à une variable globale, la variable globale est localement masquée. 41 SOUS-ALGORITHMES
  42. Snineh Mohamed  Types des sous-algorithmes: ◦ Un sous-algorithme peut se présenter sous forme de fonction ou de procédure. ◦ Une fonction est un sous-algorithme qui, à partir de donnée(s), calcul et rend à l’algorithme un et un seul résultat. ◦ Une procédure est un sous-algorithme qui affiche le(s) résultat(s) demandé(s). 42 SOUS-ALGORITHMES
  43. Snineh Mohamed  Types des sous-algorithmes: ◦ Un sous-algorithme peut se présenter sous forme de fonction ou de procédure.  Fonctions: ◦ Une fonction est un sous-algorithme qui, à partir de données, calcul et retourne à l’algorithme un et un seul résultat.  Fonctions Prédéfinies: ◦ Textes : Majuscule, Minuscule, Gauche, Droite, Sous-Chaine, Longueur, Concact, … ◦ Date : Année, Mois, Jour,…. ◦ Math : Sin, Cos, Ent, Sqrt, Abs, Alea, Mod, … ◦ … 43 SOUS-ALGORITHMES
  44. Snineh Mohamed  Fonctions définies par l’utilisateur : ◦ Une fonction est un sous-algorithme qui, à partir de données, calcul et retourne à l’algorithme un et un seul résultat.  Déclaration d’une Fonction: 44 SOUS-ALGORITHMES Fonction nom_fonction ([par1, par2, …]) : type de retour du résultat Variables nom_var : Typevar Début … Actions … Retourner Resultat Fin Corps de la fonction Variables locales
  45. Snineh Mohamed  Procédures: ◦ Une procédure est un bloc d’actions nommé et déclaré dans l’entête de l’algorithme et appelé dans son corps.  Déclaration d’une procédure : 45 SOUS-ALGORITHMES Procedure nom_procedure ([par1, par2, …]) : Variables nom_var : Typevar Début … Actions … Fin Corps de la procédure Variables locales
  46. Snineh Mohamed  Appel d’une fonction : ◦ Par affectation : F  Factorielle(5) ◦ Dans une instruction d’écriture : Ecrire (Factorielle(5)) ◦ Dans l’instruction Si … Alors  Appel d’une procédure: ◦ L’appel d’une procédure s’effectue en spécifiant son nom et éventuellement ses paramètres  Appel des sous-algorithmes: ◦ Une procédure ou une fonction peut appeler d’autres sous- algorithmes. 46 SOUS-ALGORITHMES
  47. Snineh Mohamed  Nature des paramètres : ◦ … nom_sous_algorithme (valeur | reference p1: type_donnée, …) … ◦ Le mot clé valeur indique une modalité de passage des paramètres  Exemple : Passage par valeur ◦ fonction max_value(valeur p1: reel, valeur p2: reel) : reel … ◦ Appel : Ecrire(max_value(x, y)) ◦ L’expression max_value(x,y) est évaluée de la façon suivante:  Les valeurs de x et y sont calculées  Les paramètres p1 et p2 de max_value sont initialisés en utilisant ces valeurs.  Le corps de la fonction max_value est exécuté utilisant p1 et p2 comme des variables.  Le résultat de la fonction est enfin retourné  Quelques soient les opérations effectuées sur p1 et p2 dans le corps de max_value, les valeurs des paramètres actuels x et y restent inchangés. 47 SOUS-ALGORITHMES
  48. Snineh Mohamed  Exemple : Passage par référence procédure echange (reference a: entier, reference b: entier) variable p: un entier debut p  a a  b b  p fin ◦ L’expression echange (x,y) est évaluée de la façon suivante:  on ne fait pas une copie des valeurs de x et y dans a et b  au contraire, on transforme a et b en « alias » de x et y en le faisant pointer sur les mêmes cases mémoire de x et y.  toute opération effectuée sur les paramètres a et b dans le corps de la procédure ou fonction et aussi effectué sur les arguments x et y. 48 SOUS-ALGORITHMES
  49. Snineh Mohamed  Définition et principe: ◦ En informatique la récursivité consiste à remplacer une boucle par un appel à la fonction elle-même. ◦ Exemple : N ! = 1 x 2 x … x (N-2) x (N-1) x N ◦ On commence par le nombre jusqu’à 1 pour pouvoir calculer la factorielle. ◦ Les différents appels récursifs sont empilés en mémoire jusqu’à ce que la condition d’arrêt soit validée. Ils sont ensuite dépilés jusqu’à l’appel initial. 49 RÉCURSIVITÉ Variables N : Entier, Fact : Entier Debut Fact ←1 Pour i←1 à N Fact ← Fact * i i suivant Ecrire (Fact) Fin Fonction Fact (N : Entier) : Entier Debut Si N = 1 Alors Retourner 1 Sinon Retourner N * Fact (N-1) FinSi Fin
  50. Snineh Mohamed 50 Fact(4) 4 * Fact(3) 3 * Fact(2) 2 * Fact(1) 1 = 2 * 1 = 3 * 2 = 4 * 6 = 24 RÉCURSIVITÉ Exemple : N ! = 1 x 2 x … x (N-2) x (N-1) x N
  51. Snineh Mohamed  Les types d’algorithmes de tri : ◦ Les algorithmes itératifs ◦ Les algorithmes récursifs, basés sur le paradigme « diviser pour régner », dans lesquels le tri d’une liste s’effectuera en la divisant plusieurs fois par deux jusqu’à obtention de sous-listes ne comportant qu’une seule valeur. 51 ALGORITHMES DE TRI
  52. Snineh Mohamed 52 ALGORITHMES DE TRI  Les algorithmes itératifs : ◦ Tri par sélection  Le tri par sélection consiste dans un premier temps à mettre à la première place le plus petit élément de la liste, puis à la seconde place le deuxième plus petit élément …
  53. Snineh Mohamed 54 ALGORITHMES DE TRI  Les algorithmes itératifs : ◦ Tri à bulles:  Le tri à bulles consiste à parcourir toute la liste en comparant chaque élément avec son successeur, puis en les remettant dans l’ordre si nécessaire. Puis recommencer si besoin est.  Si lors du parcours de la liste aucune permutation n’a pas été effectuée l’algorithme s’arrête.
  54. Snineh Mohamed  Les algorithmes itératifs : ◦ Tri par insertion  Le tri par insertion consiste à insérer les éléments un par un en s'assurant que lorsque l'on rajoute un nouvel élément, les éléments déjà insérés restent triés. 56 ALGORITHMES DE TRI
  55. Snineh Mohamed  Tri par insertion : Exemple 57 ALGORITHMES DE TRI 12 5 2 7 12 2 7 12 2 7 5 12 2 7 5 12 7 5 12 7 2 5 12 7 2 5 12 2 5 12 2 5 7 12 RETIRER LE 2ÈME ELT DÉCALER LES ELTS INSÉRER LE 2ÈME ELT RETIRER LE 3ÈME ELT DÉCALER LES ELTS INSÉRER LE 3ÈME ELT RETIRER LE 4ÈME ELT DÉCALER LES ELTS INSÉRER LE 4ÈME ELT
  56. Snineh Mohamed  Les algorithmes récursifs: ◦ Ils utilisent le paradigme « diviser pour régner ». ◦ Tri par fusion  Le tri par fusion consiste à trier récursivement les deux moitiés de la liste, puis à fusionner ces deux sous-listes triées en une seule. La condition d’arrêt à la récursivité sera l’obtention d'une liste à un seul élément, car une telle liste est déjà triée.  Description de l’algorithme :  Diviser la liste en deux sous-listes en la "coupant" par la moitié.  Trier récursivement chacune de ces deux sous-listes. Arrêter la récursivité lorsque les listes n'ont plus qu'un seul élément.  Fusionner les deux sous-listes triées en une seule. 58 ALGORITHMES DE TRI
  57. Snineh Mohamed  Tri par Fusion : 59 ALGORITHMES DE TRI 10 4 5 7 10 4 10 4 5 7 7 5 4 5 10 7 4 10 7 5
  58. Snineh Mohamed  Les algorithmes récursifs: ◦ Tri rapide  Le tri rapide consiste à positionner un par un par les éléments à leur place définitive en ne laissant à leur gauche que des éléments plus petits et à leur droite que des éléments plus grands. Les deux sous-listes obtenues par ce positionnement sont ensuite traitées de la même façon par récursivité. La condition d’arrêt à la récursivité sera l’obtention d'une liste à un seul élément, car cet unique élément est nécessairement au "bon" endroit. 60 ALGORITHMES DE TRI
  59. Snineh Mohamed 2 3 5 7 12 61 ALGORITHMES DE TRI 1ère itération 2ème itération 3ème itération 12 5 2 7 3 2 5 12 7 3 2 5 12 7 3 2 3 12 7 5 2 3 12 7 5 4ème itération 2 3 5 7 12  Les algorithmes récursifs: ◦ Tri rapide  Le tri rapide consiste à positionner un par un par les éléments à leur place définitive en ne laissant à leur gauche que des éléments plus petits et à leur droite que des éléments plus grands. Les deux sous-listes obtenues par ce positionnement sont ensuite traitées de la même façon par récursivité. La condition d’arrêt à la récursivité sera l’obtention d'une liste à un seul élément, car cet unique élément est nécessairement au "bon" endroit.
Anzeige