Algorithme -3-

File séquentielle: Recherche Maximum & Minimum
Retour vers: Accès associatif

On suppose que les éléments de la file sont munis d’un relation d’ordre, lorsque que l’on compare deux éléments on peut déterminer quel est le plus grand ou le plus petit grâce à la relation d’ordre qui lie ces deux éléments. Dans les schéma de programme suivant on implémente la relation d’ordre dans deux prédicats:

         le prédicat Infer(Max,Val) délivre Vrai si Max < Val  et Faux si Max >= Val 
         le prédicat Super(Min,Val) délivre Vrai si Min  > Val et Faux si Min <= Val
         la relation d'ordre est notée <,>,>=,<=
Schéma de programme de recherche du maximum dans une file
Schéma Programme Maximum
    Interface 
        Objectif: Recherche du maximum dans une file séquentielle
        Variable valeur : Nombre  -- La variable valeur est de type Nombre
        Variable file : File      -- La variable file est de type File
        Résultat: Lecture de tous les éléments de la file      
        Remarque: La file n'est pas modifiée
    Fin-Interface 

    Fonction résultat = Maximum (file: File, max: Nombre) 
        Déclaration
            Variable résultat: Nombre  
            Variable val: Nombre
        Instruction
            Si Premier(file) 
            Alors
               Prendre (file,max) -- Lecture du premier élément dans max
               val = max  -- Permet de rentrer dans la boucle si file non vide
            Fin-Si
            TantQue Non (Dernier(file))
            Faire 
               Si Infer(max,val)
               Alors
                  max = val
               Fin-Si
               Prendre (file,val)
               Avancer(file)
            Fin-Faire 
            résultat = max
        Fin-Instruction 
     Fin-Fonction
Fin_Schéma 

Note: Dans le cas ou la file comporte au moins un élément, on peut rentrer dans la boucle Tant-Que pour commencer la recherche. La fonction Infer permet de comparer le premier élément lu à un élément maximum de la file. Lors de la première itération, on ne connait pas encore de maximum, on prend alors pour maximum la valeur du premier élément de la file. Cette assignation est réalisée avant d’entrer dans la boucle d’itération ce qui permet d’amorcer la recherche.

Schéma de programme de recherche du minimum dans une file
Schéma Programme Minimum
    Interface 
        Objectif: Recherche du minimum dans une file séquentielle
        Variable valeur : Nombre  -- La variable valeur est de type Nombre
        Variable file : File    -- La variable file est de type File
        Résultat: Lecture de tous les éléments de la file      
        Remarque: La file n'est pas modifiée 
    Fin-Interface 

    Fonction résultat = Minimum (file : File, min : Nombre)
        Déclaration
            Variable résultat : Nombre  
            Variable val : Nombre
        Instruction
            Si Premier(file)
            Alors
               Prendre (file,min)
               val = min
            Fin-Si    
            TantQue Non (Dernier(file))
            Faire 
               Si Super(min,val)
               Alors
                  min = val
               Fin-Si
               Prendre(file,val)
               Avancer(file)
            Fin-Faire 
            résultat = min
        Fin-Instruction 
     Fin-Fonction
Fin_Schéma 

 

Schéma de programme de recherche du minimum et du maximun dans une file
Schéma Programme MiniMax
    Interface 
        Objectif: Recherche du minimum et du maximum dans une file séquentielle
        Variable valeur : Nombre  -- La variable valeur est de type Nombre
        Variable file : File    -- La variable file est de type File
        Résultat: Lecture de tous les éléments de la file      
        Remarque: La file n'est pas modifiée 
    Fin-Interface 

    Procedure = MiniMax (file: File, min: Nombre, max: Nombre) 
        Déclaration
            Variable val : Nombre
        Instruction
            Si Premier(file)
            Alors 
               Prendre(file,min)     
               val = min 
            Fin-Si
            TantQue Non (Dernier(file))
            Faire 
               Si Super(min,val)
               Alors
                  min = val
               Sinon
                   Si Infer(max,val)
                   Alors
                     max = val
                   Fin-Si
               Fin-Si
               Prendre (file,val)
               Avancer(file)
            Fin-Faire 
        Fin-Instruction 
     Fin-Fonction
Fin_Schéma 

Programmes Swift :