Introduction aux algorithmes
Qu'est-ce qu'un algorithme ?
Un algorithme est une série finie et non ambiguë d'instructions ou d'opérations permettant de résoudre un problème ou d'obtenir un résultat spécifique. Imaginez une recette de cuisine : elle vous donne des étapes précises (mélanger ceci, chauffer cela) pour arriver à un plat final. Un algorithme, c'est exactement ça, mais pour un ordinateur ou même pour un humain.
Voici les caractéristiques principales d'un algorithme :
- Fini : Il doit toujours se terminer après un nombre fini d'étapes.
- Non ambigu : Chaque instruction doit être claire et interprétable d'une seule manière.
- Complet : Il doit couvrir tous les cas possibles du problème.
- Efficace : Il doit être le plus rapide et le moins coûteux possible en ressources.
Les algorithmes sont le "mode d'emploi" pour résoudre un problème, étape par étape.
- Préparer un café : Ouvrir la machine, mettre le filtre, ajouter le café, verser l'eau, appuyer sur le bouton.
- Trouver un mot dans un dictionnaire : Ouvrir au milieu, si le mot est avant, aller à gauche ; s'il est après, aller à droite ; répéter jusqu'à trouver le mot.
- Calculer une moyenne : Additionner toutes les notes, puis diviser par le nombre de notes.
Histoire et évolution des algorithmes
Le mot "algorithme" vient du nom d'un mathématicien perse du IXe siècle, Al-Khwarizmi (vers 780-850). Il a écrit un ouvrage fondamental sur le calcul avec les chiffres indiens (ce que nous appelons aujourd'hui les chiffres arabes), qui a introduit en Occident la notion de système décimal. Ses méthodes de calcul étaient des algorithmes.
Pendant des siècles, les algorithmes sont restés des procédures mathématiques. C'est au XXe siècle, avec l'avènement de l'informatique, qu'ils prennent une dimension nouvelle.
- Alan Turing (1912-1954) a formalisé la notion d'algorithme avec sa machine de Turing, un modèle théorique de ce qu'une machine peut calculer. C'est la base de toute l'informatique moderne.
- Dans les années 1950-1960, les premiers ordinateurs sont apparus, et avec eux, la nécessité de traduire ces algorithmes en instructions compréhensibles par la machine.
- Aujourd'hui, les algorithmes modernes sont omniprésents et de plus en plus complexes : recherche Google, systèmes de recommandation (Netflix, YouTube), intelligence artificielle (reconnaissance faciale, assistants vocaux), trading financier, etc.
De l'Antiquité à l'ère numérique, les algorithmes sont au cœur de la pensée logique et du calcul.
Algorithmes et programmes informatiques
Il est crucial de faire la distinction entre un algorithme et un programme informatique :
- Un algorithme est une idée, une méthode générale, une séquence logique d'étapes pour résoudre un problème. Il est indépendant de tout langage de programmation et de toute machine. On peut le rédiger en langage naturel (français, anglais), en pseudo-code ou avec des organigrammes.
- Un programme informatique est la traduction concrète d'un algorithme dans un langage de programmation spécifique (comme Python, Java, C++, etc.). C'est ce programme qui est ensuite exécuté par une machine (ordinateur, smartphone).
Analogie :
- L'algorithme est la recette de cuisine (l'idée des étapes).
- Le programme est la recette écrite dans un livre de cuisine spécifique avec des unités de mesure précises et un vocabulaire particulier (la mise en œuvre de l'idée).
Un même algorithme peut être implémenté dans différents langages de programmation. Par exemple, l'algorithme pour trier une liste de nombres peut être écrit en Python, puis en Java, puis en C. Le principe reste le même, seule la syntaxe du langage change.
Un algorithme est le "quoi faire", un programme est le "comment le faire" pour une machine. L'ordinateur ne peut exécuter que des programmes, pas des algorithmes bruts.


