Qu'est-ce qu'un algorithme?

Découvrez comment les algorithmes dirigent le monde

Un algorithme est un ensemble d'instructions. La définition est vraiment simple. Un algorithme peut être aussi simple que de donner des instructions comme celle-ci:

  1. Descendez la rue
  2. Prends la première à droite
  3. Trouvez la deuxième maison sur la gauche
  4. Frapper à la porte et
  5. Livrer le paquet.

Mais tandis que la définition de l'algorithme est simple, la signification réelle et comment elle affecte nos vies peut être assez complexe.

Un exemple d'algorithme

Un exemple commun d'un algorithme que nous utilisons dans nos vies quotidiennes est une recette. Cet ensemble d'instructions nous donne tous les ingrédients dont nous aurons besoin et des instructions sur ce qu'il faut faire avec ces ingrédients. Cela semble facile, non?

Mais que faire si vous ne savez pas où la tasse à mesurer est conservée? Vous auriez besoin d'un algorithme pour le trouver. Vous mai même besoin d'un algorithme sur la façon d'utiliser une tasse à mesurer.

Ainsi, alors qu'un algorithme est un ensemble d'instructions, il doit également prendre en compte qui ou quoi va interpréter ces instructions. Par exemple, si vous donnez des instructions à un ami détaillant comment aller de votre maison à l'épicerie la plus proche, votre ami ne saura comment se rendre à ce magasin que s'il sait où se trouve votre maison. Ils ne sont pas (encore) capables de trouver cette épicerie en particulier par exemple, la maison d'un autre ami.

C'est ainsi qu'un algorithme peut être à la fois simple et complexe. Et quand on parle d'algorithmes informatiques, comprendre ce qu'un ordinateur est capable de faire est une partie fondamentale de la formulation d'algorithmes.

Comment les algorithmes de tri ont évolué

L'un des premiers algorithmes créés était la routine de tri des bulles. Le tri par bulles est une méthode permettant de trier des nombres, des lettres ou des mots en faisant défiler un ensemble de données, en comparant chaque ensemble de valeurs côte à côte et en les échangeant au besoin.

Cette boucle est répétée jusqu'à ce que l'algorithme puisse se déplacer dans la liste entière sans avoir besoin d'échanger quoi que ce soit, ce qui signifie que les valeurs sont correctement triées. Ce type d'algorithme est souvent appelé un algorithme récursif car il boucle sur lui-même encore et encore jusqu'à ce qu'il termine la tâche.

L'algorithme peut sembler aussi simple que:

  1. Aller à la première valeur.
  2. Vérifiez cette valeur par rapport à la valeur suivante et permutez les positions si nécessaire
  3. Allez à la valeur suivante et répétez la comparaison.
  4. Si nous sommes à la fin de la liste, revenez en haut si une valeur a été permutée pendant la boucle.

Mais le tri à bulles ne s'est pas avéré être le moyen le plus efficace de trier les valeurs. Au fil du temps et les ordinateurs sont devenus plus capables de faire des tâches complexes rapidement, de nouveaux algorithmes de tri sont apparus.

Un tel algorithme balaye la première liste et crée une deuxième liste de valeurs triées. Cette méthode ne fait qu'un seul passage dans la liste d'origine, et avec chaque valeur, elle parcourt la seconde liste jusqu'à ce qu'elle trouve l'emplacement correct pour mettre la valeur. Habituellement, il est plus efficace que d'utiliser la méthode de tri à bulles.

C'est là que les algorithmes peuvent devenir vraiment fous. Ou vraiment intéressant, selon la façon dont vous le regardez.

Alors que la méthode de tri à bulles est considérée comme l'une des méthodes les plus inefficaces pour trier les valeurs de plusieurs façons, si la liste originale est correctement triée, le tri à bulles peut être l'un des plus efficaces. C'est parce que, dans ce cas, l'algorithme de tri à bulles traversera la liste une seule fois et déterminera qu'il est correctement trié.

Malheureusement, nous ne savons pas toujours si notre liste est triée, nous devons donc choisir un algorithme qui sera le plus efficace à utiliser en moyenne sur un grand nombre de listes.

Ce que nous apprenons du tri des bulles

Algorithmes Facebook et plus dans la vie quotidienne

Des algorithmes sont au travail pour aider les humains tous les jours. Lorsque vous effectuez une recherche sur le Web, un algorithme tente de trouver les meilleurs résultats de recherche. Demandez des instructions à votre smartphone, et un algorithme détermine le meilleur itinéraire à prendre. Et lorsque vous naviguez sur Facebook, un algorithme décide quels messages Facebook de nos amis sont les plus importants pour nous. (Espérons que nos amis ne sauront pas lequel Facebook est celui que nous aimons le plus!)

Mais penser de manière algorithmique peut nous aider bien au-delà de nos vies informatiques. Cela peut même nous aider à construire un meilleur sandwich.

Disons que je commence avec deux tranches de pain, étaler la moutarde sur une tranche et la mayonnaise sur une autre tranche. Je mets une tranche de fromage sur le pain avec de la mayonnaise, un peu de jambon dessus, de la laitue, deux tranches de tomate et puis je le couvre avec cette tranche de moutarde. Bon sandwich, non?

Certainement si je le mange tout de suite. Mais si je le laisse sur la table pendant un moment, cette tranche de pain pourrait devenir détrempée en absorbant une partie de cette tomate. C'est un problème que je n'avais pas anticipé, et je pourrais faire des sandwiches pendant des années avant de le remarquer, mais une fois que je le ferai, je pourrai commencer à réfléchir à des moyens de changer mon algorithme pour construire un meilleur sandwich.

Par exemple, je pourrais me débarrasser de la tomate. Mais je ne veux pas perdre ce goût de tomate. Donc, au lieu de cela, je peux mettre la tomate sur le sandwich après le pain et la laitue. Cela permet à la laitue de former une barrière protectrice entre la tomate et le pain.

C'est ainsi qu'un algorithme évolue. Et un algorithme ne doit pas être exécuté par un ordinateur pour être un algorithme. Un algorithme est un processus, et les processus sont tout autour de nous.