CoursNumérique et sciences informatiques · 1re
Comment trouver une information dans une longue liste, ou ranger des données dans l'ordre ? Ces tâches reposent sur des algorithmes. La spécialité NSI étudie l'algorithmique : la recherche et le tri, fondements de l'informatique.
Le cours
Un algorithme est une suite finie et ordonnée d'instructions permettant de résoudre un problème ou d'accomplir une tâche. La notion d'algorithme est au cœur de l'informatique : programmer, c'est avant tout concevoir et mettre en œuvre des algorithmes.
Un algorithme décrit précisément les étapes à suivre pour obtenir un résultat, de façon non ambiguë. On peut le comparer à une recette de cuisine : une suite d'étapes claires menant à un résultat. Mais un algorithme n'est pas propre à l'informatique : effectuer une addition posée, chercher un mot dans un dictionnaire suivent des algorithmes. En informatique, un algorithme est ensuite traduit dans un langage de programmation pour être exécuté par une machine. Un bon algorithme doit être correct (donner le bon résultat) et, si possible, efficace.
Comprendre ce qu'est un algorithme est fondamental, car c'est la notion centrale de l'informatique et de la programmation. Concevoir des algorithmes développe aussi la logique et la rigueur. L'algorithmique est une discipline majeure, approfondie dans le supérieur en informatique, où l'on étudie la conception et l'analyse d'algorithmes de plus en plus sophistiqués.
Une recette de cuisine est comme un algorithme : une suite d'étapes à suivre.
L'un des problèmes les plus courants en informatique est de rechercher un élément dans une liste : par exemple, vérifier si un nom figure dans une liste. Ce problème simple permet d'illustrer concrètement la notion d'algorithme et son efficacité.
La méthode la plus simple est la recherche séquentielle : on parcourt la liste élément par élément, du début à la fin, en comparant chacun à la valeur cherchée, jusqu'à la trouver (ou atteindre la fin de la liste). Cette méthode fonctionne toujours, mais peut être lente sur de longues listes. Si la liste est déjà triée, on peut utiliser une méthode bien plus rapide, la recherche dichotomique : on compare la valeur cherchée à l'élément du milieu, ce qui permet d'éliminer la moitié de la liste à chaque étape. Ainsi, chercher dans une liste triée d'un million d'éléments ne demande qu'une vingtaine d'étapes.
La recherche dans une liste illustre parfaitement pourquoi le choix d'un algorithme est important : pour un même problème, des méthodes différentes ont des efficacités très différentes. Ces algorithmes de recherche sont fondamentaux. Ils sont approfondis dans le supérieur, en algorithmique, où l'on étudie leur efficacité de façon rigoureuse.
La recherche séquentielle parcourt la liste élément par élément jusqu'à trouver.
Trier une liste, c'est ranger ses éléments dans un ordre donné (croissant, alphabétique). Le tri est l'un des problèmes les plus étudiés en informatique, car il est très fréquent et parce qu'il existe de nombreuses façons de le résoudre, plus ou moins efficaces.
Il existe de multiples algorithmes de tri. Certains sont simples à comprendre, comme le tri par sélection (on cherche le plus petit élément, on le place en premier, puis on recommence avec le reste) ou le tri par insertion (on insère chaque élément à sa place dans la partie déjà triée, comme on range des cartes dans sa main). Ces méthodes fonctionnent bien sur de petites listes, mais peuvent être lentes sur de grandes. D'autres algorithmes, plus sophistiqués, sont beaucoup plus rapides sur de grandes quantités de données. Le tri est aussi utile parce qu'une liste triée permet ensuite des recherches très rapides.
Le tri est un problème fondamental de l'informatique, qui illustre la diversité et l'efficacité des algorithmes. Comprendre plusieurs méthodes de tri développe le raisonnement algorithmique. Le tri est un grand classique, approfondi dans le supérieur en algorithmique, où l'on étudie et compare de nombreux algorithmes de tri et leur efficacité.
Un algorithme de tri range une liste de nombres dans l'ordre croissant.
Pour résoudre un problème, il existe souvent plusieurs algorithmes. Comment savoir lequel est le meilleur ? Une question centrale est celle de l'efficacité : un algorithme efficace résout le problème rapidement, même sur de grandes quantités de données.
L'efficacité d'un algorithme mesure les ressources qu'il consomme, principalement le temps de calcul (le nombre d'opérations à effectuer) et parfois la mémoire utilisée. On ne mesure pas cette efficacité en secondes (cela dépendrait de la machine), mais en analysant comment le nombre d'opérations augmente avec la taille des données. Par exemple, la recherche séquentielle demande d'autant plus d'opérations que la liste est longue, tandis que la recherche dichotomique en demande beaucoup moins. Sur de grandes données, ces différences d'efficacité deviennent considérables : un algorithme inefficace peut être inutilisable là où un bon algorithme reste rapide.
Comprendre l'efficacité des algorithmes est fondamental : c'est ce qui permet de choisir la bonne méthode et de traiter de grandes quantités de données. Cette analyse est au cœur de l'algorithmique. Elle est approfondie dans le supérieur, en informatique (complexité algorithmique), où elle constitue un pilier essentiel de la conception d'algorithmes performants.
Sur une grande liste, un algorithme efficace est bien plus rapide qu'un algorithme lent.
La recherche séquentielle parcourt les éléments un par un : simple, mais lente sur de grandes listes.
La recherche dichotomique, elle, exige une liste triée : on compare la valeur cherchée à l'élément du milieu, puis on ne garde que la moitié où elle peut se trouver, et on recommence. On divise ainsi le problème par deux à chaque étape — d'où une rapidité spectaculaire.
Trier consiste à ranger des données dans l'ordre. Il existe plusieurs algorithmes de tri, plus ou moins rapides.
On mesure l'efficacité d'un algorithme par sa complexité : le nombre d'opérations selon la taille des données. Un bon algorithme fait gagner un temps considérable : sur des millions de données, le choix de l'algorithme change tout.
Chercher 7 dans la liste triée [1, 3, 5, 7, 9, 11] par recherche dichotomique.
Recherche, tri, mais aussi recommandations, trajets, moteurs de recherche : des algorithmes sont à l'œuvre en permanence, souvent invisibles. Leur efficacité détermine la rapidité des services que nous utilisons. Comprendre l'algorithmique, c'est comprendre les rouages du monde numérique — et pouvoir en discuter les enjeux.
Ce qu'il faut absolument retenir
Vérifie ta compréhension
Exercice 1Qu'est-ce qu'un algorithme ?
Un algorithme est une suite finie d'instructions qui résout un problème, indépendamment du langage.
Exercice 2Comment fonctionne la recherche séquentielle dans une liste ?
La recherche séquentielle parcourt la liste élément par élément jusqu'à trouver l'élément cherché.
Exercice 3Que signifie « trier » une liste ?
Trier, c'est ranger les éléments d'une liste dans un ordre (croissant, alphabétique).
Exercice 4Tous les algorithmes résolvant un même problème ont la même efficacité.
Faux : certains algorithmes sont bien plus rapides que d'autres ; l'efficacité compte beaucoup à grande échelle.
Exercice 5Pourquoi l'efficacité d'un algorithme est-elle importante quand les données sont nombreuses ?
Parce que sur de grandes quantités de données, un algorithme lent peut nécessiter énormément d'opérations et de temps, tandis qu'un algorithme efficace donne le résultat beaucoup plus vite. Choisir un bon algorithme permet donc de traiter de grandes données dans un temps raisonnable.
L'essentiel en images