Achevia/ Première/ NSI 1re/ Algorithmique (tris, recherche)

CoursNumérique et sciences informatiques · 1re

Algorithmique (tris, recherche)

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

1. Qu'est-ce qu'un algorithme ?

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.

Exemple

Une recette de cuisine est comme un algorithme : une suite d'étapes à suivre.

2. La recherche dans une liste

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.

Exemple

La recherche séquentielle parcourt la liste élément par élément jusqu'à trouver.

3. Le tri

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é.

Exemple

Un algorithme de tri range une liste de nombres dans l'ordre croissant.

4. L'efficacité d'un algorithme

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.

Exemple

Sur une grande liste, un algorithme efficace est bien plus rapide qu'un algorithme lent.

Pour approfondir ce chapitrefacultatif

Définitions clés

Algorithme
Une suite finie d'instructions précises qui résout un problème.
Recherche séquentielle
Parcourir une liste élément par élément jusqu'à trouver la valeur cherchée.
Recherche dichotomique
Sur une liste triée, chercher en coupant l'intervalle en deux à chaque étape : bien plus rapide.
Efficacité (complexité)
La mesure du nombre d'opérations d'un algorithme selon la taille des données.

Explications détaillées

Rechercher dans une liste

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 et mesurer l'efficacité

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.

Méthode pas à pas

Appliquer une recherche dichotomique
  1. Vérifier que la liste est triée (condition indispensable).
  2. Comparer la valeur cherchée à l'élément du milieu.
  3. Si elle est plus petite, continuer dans la moitié gauche ; sinon, dans la moitié droite.
  4. Recommencer jusqu'à trouver la valeur (ou conclure qu'elle est absente).

Exemple corrigé pas à pas

Chercher par dichotomie

Chercher 7 dans la liste triée [1, 3, 5, 7, 9, 11] par recherche dichotomique.

  1. Élément du milieu ≈ 5. On compare : 7 > 5, on garde la moitié droite [7, 9, 11].
  2. Nouvel élément du milieu : 9. On compare : 7 < 9, on garde la moitié gauche [7].
  3. Il reste 7, qui correspond à la valeur cherchée.
  4. Trouvé en 3 comparaisons seulement, au lieu de parcourir toute la liste.

Erreurs fréquentes à éviter

  • Appliquer la recherche dichotomique sur une liste non triée.La dichotomie n'est valable QUE sur une liste triée.
  • Confondre un algorithme et un programme.L'algorithme est la méthode ; le programme est sa traduction dans un langage (comme Python).
  • Négliger l'efficacité d'un algorithme.Sur de grandes données, un algorithme lent peut être inutilisable : l'efficacité est cruciale.

Pour aller plus loin

Les algorithmes gouvernent le numérique

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

Ce qu'il faut absolument retenir

Vérifie ta compréhension

Exercice 1Qu'est-ce qu'un algorithme ?

Exercice 2Comment fonctionne la recherche séquentielle dans une liste ?

Exercice 3Que signifie « trier » une liste ?

Exercice 4Tous les algorithmes résolvant un même problème ont la même efficacité.

Exercice 5Pourquoi l'efficacité d'un algorithme est-elle importante quand les données sont nombreuses ?

Source officielle   Ministère de l'Éducation nationale — Programme officiel · FR-2019

L'essentiel en images

Récapitulatif illustré du cours