Mis à jour le 11/07/2017
  • 15 heures
  • Facile

Ce cours est visible gratuitement en ligne.

Ce cours est en vidéo.

Vous pouvez obtenir un certificat de réussite à l'issue de ce cours.

J'ai tout compris !

Tous les algorithmes se valent-ils ?

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Nous venons de le voir  avec Scratch, il est possible de trouver plusieurs façons d’atteindre le même objectif. Dans la vie de tous les jours également, on peut trouver plusieurs méthodes pour résoudre le même problème. Et les choix que nous faisons peuvent tout changer !

Plusieurs méthodes pour résoudre le même problème

Après tout… Chacun d'entre nous applique des algorithmes dans sa vie. Et parfois, nous l’avons déjà vu, nous le faisons sans le réaliser vraiment. Nous avons établi des stratégies, des habitudes, des raisonnements que nous appliquons à nos activités du quotidien.

Quand vous faites des achats dans un magasin, vous pouvez choisir de parcourir les allées du début à la fin du magasin en vérifiant, pour chaque allée, si elle contient un produit qui est sur votre liste de course. Mais vous pouvez aussi décider de rédiger votre liste au préalable, en fonction de votre connaissance du magasin, pour que la liste présente les produits dans le bon ordre et vous facilite la vie. Vous allez ainsi suivre votre liste et cocher chaque article, du premier au dernier, en fonction de votre avancement.

Quand vous faites un plan de table pour placer vos invités, vous voulez maximiser les affinités et faire plaisir à tout le monde en plaçant chacun auprès de ceux qu'il voudrait avoir comme voisin. Mais il est parfois difficile de totalement satisfaire tout le monde alors quand cela devient trop compliqué, vous cherchez un moyen de vous en sortir au mieux. Peut-être écrirez vous ce plan en plaçant un premier invité, puis celui qui irait le mieux à côté, et ainsi de suite… Une autre méthode consisterait, à l'inverse, à éloigner ceux qui ont le moins d'affinités, puis recommencer avec les deux suivants, etc.

Enfin, quand vous cherchez un mot dans un dictionnaire vous l'ouvrez à l'endroit le plus probable en fonction de la position de la première lettre de ce mot dans l'alphabet (vers le début pour la lettre 'c' ou vers le milieu pour la lettre 'p', etc.). Ensuite, vous faites quelques sauts en avant ou en arrière, en fonction de la lettre qui débute les mots de la page que vous regardez. Et vous recommencez jusqu'à trouver la première lettre, et vous refaites pareil avec la deuxième lettre, et ainsi de suite.

Et si nous utilisions les ordinateurs pour nous aider à traiter ces tâches quotidiennes ?

Pour décider quel est le déplacement optimal dans un magasin en fonction des articles à acheter. Pour écrire un plan de table qui réponde au mieux aux affinités des invités. Pour chercher un mot dans un ensemble de mots (ou plus généralement pour chercher un objet dans un ensemble d'objets du même type). Les solutions à un grand nombre de ces problèmes, peuvent être calculées grâce aux algorithmes !

Il s'agit alors de :

  • poser le problème de manière formelle,

  • puis d'écrire un algorithme basé sur les quatre ingrédients que nous avons déjà vus (instruction, boucle, test et variables) et permettant de le résoudre.

  • Pour rendre ces calculs mécaniques, il nous faudra ensuite traduire ces algorithmes en programmes,

  • et laisser la machine dérouler les instructions.

Parfois, les algorithmes que nous écrivons sont inspirés du raisonnement ou des pratiques humaines. Il suffit alors d'y ajouter une étude qui rendra l'approche plus rigoureuse et plus générale. Reprenons l'exemple du mot dans le dictionnaire. Il existe un exercice très similaire qui consiste à chercher son nom, ou son prénom, dans une liste (par exemple, pour savoir si on est reçu à un concours). Essayons de formaliser la manière dont on réalise cette tâche. Pour cela, nous vous proposons de pratiquer l’activité suivante.

Exemple de certificat de réussite
Exemple de certificat de réussite