Débuter avec l'algorithme

Un exemple de problème algorithmique

Un problème algorithmique est spécifié en décrivant l’ensemble complet des instances sur lesquelles il doit fonctionner et de sa sortie après s’être exécuté sur l’une de ces instances. Cette distinction, entre un problème et une instance de problème, est fondamentale. Le problème algorithmique connu sous le nom de tri est défini comme suit : [Skiena:2008:ADM:1410219]

  • Problème : Trier
  • Entrée : Une séquence de n touches, a_1, a_2, ..., a_n.
  • Sortie : la réorganisation de la séquence d’entrée telle que a'_1 <= a'_2 <= ... <= a'_{n-1} <= a'_n

Une instance de tri peut être un tableau de chaînes, comme { Haskell, Emacs } ou une séquence de nombres comme { 154, 245, 1337 }.

Premiers pas avec l’algorithme Simple Fizz Buzz dans Swift

Pour ceux d’entre vous qui découvrent la programmation dans Swift et ceux d’entre vous qui viennent de différentes bases de programmation, telles que Python ou Java, cet article devrait être très utile. Dans cet article, nous discuterons d’une solution simple pour implémenter des algorithmes rapides.

Fizz Buzz

Vous avez peut-être vu Fizz Buzz écrit comme Fizz Buzz, FizzBuzz ou Fizz-Buzz ; ils font tous référence à la même chose. Cette “chose” est le principal sujet de discussion aujourd’hui. Tout d’abord, qu’est-ce que FizzBuzz ?

C’est une question courante qui revient dans les entretiens d’embauche.

Imaginez une série d’un nombre de 1 à 10.

1 2 3 4 5 6 7 8 9 10

Fizz et Buzz font référence à tout nombre qui est respectivement un multiple de 3 et 5. En d’autres termes, si un nombre est divisible par 3, il est remplacé par fizz ; si un nombre est divisible par 5, il est remplacé par buzz. Si un nombre est simultanément un multiple de 3 ET 5, le nombre est remplacé par “fizz buzz”. Essentiellement, il émule le célèbre jeu pour enfants “fizz buzz”.

Pour résoudre ce problème, ouvrez Xcode pour créer un nouveau terrain de jeu et initialisez un tableau comme ci-dessous :

// for example 
let number  = [1,2,3,4,5]
// here 3 is fizz and 5 is buzz

Pour trouver tous les fizz et buzz, nous devons parcourir le tableau et vérifier quels nombres sont fizz et lesquels sont buzz. Pour ce faire, créez une boucle for pour parcourir le tableau que nous avons initialisé :

for num in number {
  // Body and calculation goes here
}

Après cela, nous pouvons simplement utiliser la condition “if else” et l’opérateur de module dans swift, c’est-à-dire - % pour localiser le pétillement et le bourdonnement

for num in number {
  if num % 3 == 0 {
    print("\(num) fizz")
  } else {
    print(num)
  }
}

Super! Vous pouvez accéder à la console de débogage dans le terrain de jeu Xcode pour voir la sortie. Vous constaterez que les “fizzes” ont été triés dans votre tableau.

Pour la partie Buzz, nous utiliserons la même technique. Essayons avant de faire défiler l’article - vous pouvez vérifier vos résultats par rapport à cet article une fois que vous avez terminé.

for num in number {
  if num % 3 == 0 {
    print("\(num) fizz")
  } else if num % 5 == 0 {
    print("\(num) buzz")
  } else {
    print(num)
  }
}

Vérifiez la sortie !

C’est plutôt simple - vous avez divisé le nombre par 3, fizz et divisé le nombre par 5, buzz. Maintenant, augmentez les nombres dans le tableau

let number = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]

Nous avons augmenté la gamme de nombres de 1-10 à 1-15 afin de démontrer le concept d’un “fizz buzz”. Étant donné que 15 est un multiple de 3 et 5, le nombre doit être remplacé par “fizz buzz”. Essayez par vous-même et vérifiez la réponse !

Voici la solution :

for num in number {
  if num % 3 == 0 && num % 5 == 0 {
    print("\(num) fizz buzz")
  } else if num % 3 == 0 {
    print("\(num) fizz")
  } else if num % 5 == 0 {
    print("\(num) buzz")
  } else {
    print(num)
  }
}

Attendez… ce n’est pas fini ! Le but de l’algorithme est de personnaliser correctement le runtime. Imaginez si la plage passe de 1-15 à 1-100. Le compilateur vérifiera chaque nombre pour déterminer s’il est divisible par 3 ou 5. Il parcourra ensuite à nouveau les nombres pour vérifier s’ils sont divisibles par 3 et 5. Le code devrait essentiellement parcourir chaque nombre du tableau. deux fois - il faudrait d’abord exécuter les nombres par 3, puis les exécuter par 5. Pour accélérer le processus, nous pouvons simplement dire à notre code de diviser les nombres par 15 directement.

Voici le code final :

for num in number {
  if num % 15 == 0 {
    print("\(num) fizz buzz")
  } else if num % 3 == 0 {
    print("\(num) fizz")
  } else if num % 5 == 0 {
    print("\(num) buzz")
  } else {
    print(num)
  }
}

Aussi simple que cela, vous pouvez utiliser la langue de votre choix et commencer

Profitez du codage