Aller au menu - Aller au contenu

Icône Qu'est-ce qu'un algorithme ?

Avatar
Avatar
Mise à jour : 12/06/2010
Difficulté : Facile Facile Creative Commons BY-SA
3 427 visites depuis 7 jours, dont 258 sur ce chapitre classé 47/786
Un algorithme est la description précise, sous forme de concepts simples, de la manière dont on peut résoudre un problème.

Dans la vie de tous les jours, nous avons souvent besoin de résoudre des problèmes. Surtout si on considère la notion de "problème" au sens large.
Sommaire du chapitre :
Icône du chapitre
Sommaire Chapitre suivant

Omniprésence des algorithmes

Un exemple de problème qui nous concerne tous (oui, même vous) est celui de la cuisine : vous êtes dans une cuisine, vous trouvez du riz, comment le cuire ? Voici une marche à suivre simple :
  • remplir une casserole d'eau ;
  • y ajouter une pincée de sel ;
  • la mettre sur le feu ;
  • attendre l'ébullition de l'eau ;
  • mettre le riz dans la casserole ;
  • le laisser cuire 10 à 15 minutes ;
  • égoutter le riz.


J'ai décrit une solution au problème "il faut faire cuire du riz", sous forme de concepts simples. Vous remarquerez qu'il y a pourtant beaucoup de choses implicites : j'ai précisé que vous étiez au départ en possession du riz, mais il faut aussi une casserole, de l'eau, etc. On peut se trouver dans des situations spécifiques où tous ces objets ne sont pas disponibles, et il faudra alors utiliser un autre algorithme (ou commencer par construire une casserole...).

Les instructions que j'ai utilisées sont "précises", mais on pourrait préciser moins de choses, ou plus. Comment fait-on pour remplir une casserole d'eau, plus précisément ? Si le cuisinier à qui la recette est destinée ne sait pas interpréter la ligne "remplir une casserole d'eau", il faudra l'expliquer en termes plus simples (en expliquant comment utiliser le robinet, par exemple).

De même, quand vous programmez, le degré de précision que vous utilisez dépend de nombreux paramètres : le langage que vous utilisez, les bibliothèques que vous avez à disposition, etc.

Rôle privilégié des ordinateurs

Si on trouve des algorithmes dans la vie de tous les jours, pourquoi en parle-t-on principalement en informatique ? La raison est très simple : les ordinateurs sont très pratiques pour effectuer des tâches répétitives. Ils sont rapides, efficaces, et ne se lassent pas.

On peut décrire un algorithme permettant de calculer les décimales de la racine carrée de deux, qui soit utilisable par un humain. Vous pourrez ainsi calculer, à l'aide d'une feuille et d'un crayon, les 10 premières décimales (1,4142135624). Mais s'il vous en faut un million ? Un ordinateur deviendra alors beaucoup plus adapté.

De manière générale, on peut concevoir de nombreux algorithmes comme des méthodes de traitement d'information : recherche, comparaison, analyse, classement, extraction, les ordinateurs sont souvent très utiles pour tripoter la masse d'informations qui nous entoure continuellement.

Vous aurez peut-être pensé au célèbre moteur de recherche Google (qui a initialement dominé le marché grâce aux capacités de son algorithme de recherche), mais ce genre d'activités n'est pas restreint au (vaste) secteur d'Internet : quand vous jouez à un jeu de stratégie en temps réel, et que vous ordonnez à une unité de se déplacer, l'ordinateur a en sa possession plusieurs informations (la structure de la carte, le point de départ, le point d'arrivée) et il doit produire une nouvelle information : l'itinéraire que doit suivre l'unité.

Notion de structure de données

En plus de manipuler l'information, il faut aussi la stocker. La manière dont on organise cette information stockée peut avoir des conséquences très importantes sur leur manipulation.

Concrètement, prenez par exemple un dictionnaire : on peut définir un dictionnaire comme "un ensemble de mots et leur définition". Cependant, pourrait-on utiliser correctement un dictionnaire dont les mots sont placés dans le désordre ? Certainement pas, parce qu'il serait très difficile de trouver la définition d'un mot que l'on cherche (c'est encore possible, il suffit de lire le dictionnaire page par page jusqu'à ce qu'on trouve le mot). L'ordre alphabétique est clairement une solution très efficace pour pouvoir retrouver rapidement le mot que l'on cherche.

Il y a des liens forts entre les algorithmes (qui décrivent des méthodes) et les structures de données (qui décrivent une organisation). Typiquement, certaines structures de données sont indispensables à la mise en place de certaines méthodes, et à l'inverse certains algorithmes sont nécessaires aux structures de données : par exemple, si on veut rajouter un mot dans un dictionnaire classé alphabétiquement, on ne peut pas juste l'écrire dans l'espace libre sur la dernière page, il faut utiliser un algorithme pour l'ajouter au bon endroit. L'étude des structures de données est donc inséparable de celle des algorithmes, et vous n'y échapperez pas. :pirate:
Sommaire Chapitre suivant

Partager

17 commentaires pour "Qu'est-ce qu'un algorithme ?"
Note moyenne : 3.89 / 4 (127 votes)
Pseudo Commentaire
Hors ligne huefib # Posté le 19/01/2010 à 22:52:30
Avatar

J'ai besoin d'un guide pratique qui m'AIDERAIS à apprendre la programmation à commencer par l'Algorithme
Hors ligne guy_aristide # Posté le 27/03/2010 à 21:16:27
Avatar

Merci pour ce tutoriel :D grâce a toi je pourrai enfin résoudre plusieurs de mes problèmes.
Hors ligne bker # Posté le 26/02/2012 à 18:57:06
Avatar

Avis : Bon

Mon professeur de Structure de donnée ses servi de ton introduction concernant la Notion de Structure de donnée pour nous faire le cours.
Hors ligne Astirot59 # Posté le 20/04/2012 à 11:08:14

Avis : Très bon

c'est sur qu'il faut commencer par le commencement, mais si on devait tout mètre ça donnerais ça:
1- Avoir un emploi, une maison,une cuisine (de préférence)...
2- aller au magasin pour acheter une casserole, du sel, du riz
3- regarder le tutoriel sur les algorithme pour savoir comment faire cuire du riz
et c'est clair que c'est moin bien comme ça, sinon tres bon tuto dans l'ensemble
Hors ligne bluestorm # Posté le 20/04/2012 à 18:57:53
dont ask to ask
Avatar
Groupe : Anciens
Flux RSS

Ah mais même un programme informatique, on ne dit pas tout, il y a des choses qui se passent de toute façon sans que le programmeur le gère explicitement. Le système d'exploitation tourne déjà avant que le programme ne démarre, comme dans ton cas on présuppose qu'on a acheté les ingrédients et les ustensiles.
 

Voir tous les commentaires