Un algorithme est un ensemble d'instructions. La définition est vraiment aussi simple que cela. Un algorithme peut être aussi simple que de donner des instructions comme celle-ci:
- Descends la rue.
- Prends la première à droite.
- Trouvez la deuxième maison à gauche.
- Frapper à la porte.
- Livrer le colis.
Mais bien que la définition de l’algorithme soit simple, le sens réel et la manière dont il affecte nos vies peuvent être assez complexes.
Un exemple d'algorithme
Un exemple courant d'algorithme que nous utilisons dans notre vie quotidienne est une recette. Cet ensemble d’instructions nous fournit tous les ingrédients dont nous aurons besoin et des instructions sur la manière de les utiliser. Cela semble facile, non?
Mais que faire si vous ne savez pas où la tasse à mesurer est conservée? Vous aurez besoin d'un algorithme pour le trouver. Vous aurez peut-être même besoin d'un algorithme pour utiliser une tasse à mesurer.
Ainsi, bien qu’un algorithme soit un ensemble d’instructions, il doit également prendre en compte qui va interpréter ces instructions. Par exemple, si vous donnez des instructions à un ami pour lui indiquer comment aller de votre maison à l'épicerie la plus proche, votre ami saura comment se rendre à ce magasin s'il sait où se trouve votre maison. Ils ne sont pas encore capables de trouver cette épicerie en particulier chez un autre ami.
C'est ainsi qu'un algorithme peut être à la fois simple et complexe. Et lorsque nous parlons d’algorithmes informatiques, comprendre ce que l’ordinateur est capable de faire est un élément fondamental de la formulation des algorithmes.
Comment les algorithmes de tri ont évolué
L'un des premiers algorithmes créés était la routine de tri à bulle. Le tri à bulles est une méthode permettant de trier des chiffres, des lettres ou des mots en effectuant une boucle dans un jeu de données, en comparant chaque jeu 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 parcourir toute la liste sans rien échanger, ce qui signifie que les valeurs sont triées correctement. Ce type d'algorithme est souvent appelé algorithme récursif car il boucle en boucle sur lui-même jusqu'à la fin de la tâche.
Ce type d'algorithme peut sembler aussi simple que:
- Aller à la première valeur.
- Vérifiez cette valeur par rapport à la valeur suivante et permutez les positions si nécessaire.
- Aller à la valeur suivante et répéter la comparaison.
- Si nous sommes à la fin de la liste, revenez en haut si une valeur a été permutée pendant la boucle.
Mais le genre de bulle ne s'est pas avéré le plus efficace manière de trier les valeurs. Au fil du temps et de la capacité des ordinateurs à effectuer rapidement des tâches complexes, de nouveaux algorithmes de tri sont apparus.
Un tel algorithme parcourt 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 deuxième liste jusqu'à trouver le bon endroit pour mettre la valeur. Généralement, cela est plus efficace que d'utiliser la méthode de tri à bulle.
C'est là que les algorithmes peuvent devenir vraiment fous. Ou vraiment intéressant, selon votre point de vue.
Bien que la méthode de tri à bulle soit considérée comme l’une des méthodes les plus inefficaces pour trier les valeurs à bien des égards, si la liste originale est triée correctement, le tri à bulle peut être l’une des méthodes les plus efficaces. plus efficace. En effet, dans ce cas, l’algorithme de tri à bulles parcourt la liste une seule fois et détermine qu’il est correctement trié.
Malheureusement, nous ne savons pas toujours si notre liste est pré-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 de l'algorithme de tri à bulles
- Les algorithmes évoluent avec le temps, à mesure que nous trouvons des moyens plus efficaces de faire les choses et / ou que les ordinateurs deviennent plus capables de mener à bien des tâches complexes.
- Les algorithmes sont parfois choisis parce qu'ils sont "plus" efficaces "la plupart du temps.
- Ce n’est pas parce qu’un algorithme est le plus souvent efficace qu’il est toujours le meilleur dans chaque cas.
Algorithmes Facebook et plus dans la vie quotidienne
Des algorithmes sont à l'œuvre pour aider les humains tous les jours. Lorsque vous effectuez une recherche sur le Web, un algorithme essaie de trouver les meilleurs résultats de recherche. Demandez votre itinéraire à votre smartphone et un algorithme déterminera le meilleur itinéraire à suivre. Et lorsque vous naviguez sur Facebook, un algorithme détermine les publications de nos amis sur Facebook qui sont les plus importantes pour nous. (Espérons que nos amis ne découvrent pas lequel de Facebook pense que nous aimons le plus!)
Mais penser de manière algorithmique peut nous aider bien au-delà de notre vie informatique. Cela peut même nous aider à construire un meilleur sandwich.
Disons que je commence avec deux tranches de pain, étalant de la moutarde sur une tranche et de la mayonnaise sur une autre tranche. Je mets une tranche de fromage sur le pain avec la mayonnaise, du jambon par-dessus, de la laitue, deux tranches de tomate, puis la coiffe de 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 bien anticipé, et je pourrais faire des sandwichs pendant des années avant de m'en rendre compte, mais une fois que je le ferais, je pourrais commencer à penser à des façons de changer mon algorithme afin de 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. Je peux donc 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.
Voici comment un algorithme évolue. Et un algorithme ne doit pas nécessairement être exécuté par un ordinateur pour être un algorithme.Un algorithme est un processus et les processus sont tout autour de nous.