Recherche par valeur

Swift

Recherche avec itèration conditionnelle dans un ensemble non trié

func rechercheParValeur_1 <_Element>(_ ensemble: Ensemble<_Element>
                          ,_ valeur: _Element) -> Bool 
{
   var existe = false
   Initialiser(ensemble)
   while Enumeration(ensemble) && !existe {
      let element = Element(ensemble)
      existe = Egal(valeur,element)
   }
   return existe
}

Recherche dans le cas d’un ensemble itérable

func rechercheParValeur_2 <_Element>(_ ensemble: Ensemble<_Element>
                                    ,_ valeur: _Element) -> Bool 
{
   var existe = false
   for element in ensemble {
      if Egal(valeur,element) {
         existe = true
         break
      }
   }
   return existe
}

Version optimisée pour un ensemble trié

func rechercheParValeur_3 <_Element>(_ ensemble: Ensemble<_Element>
                                    ,_ valeur: _Element) -> Bool 
{
   var existe = false
   for element in ensemble {
      if valeur < element { break }
      if valeur == element {
         existe = true
         break
      }
   }
   return existe
}

Recherche avec boucle infinie

func rechercheParValeur_4 <_Element>(_ ensemble: Ensemble<_Element>
                                    ,_ valeur: _Element) -> Bool 
{
   var existe = false
   Initialiser(ensemble)
   while true {
      if Dernier(ensemble) { break }
      let element = Element(ensemble)
      if valeur < element { break }
      if Egal(valeur,element) {
         existe = true
         break
      }
   }
   return existe
}

copyright A rchitectures A pplicatives A vancées A3-Soft