Ce que tu dois savoir faire après cette fiche
- 1.Comprendre la notion d'algorithme et de variable en pseudocode.
- 2.Savoir tracer l'exécution d'une suite d'instructions d'affectation.
- 3.Connaître la structure conditionnelle Si...Alors...Sinon.
- 4.Comprendre la notion de complexité algorithmique.
Sommaire de la fiche
Introduction
Un algorithme est une suite finie et ordonnée d'instructions permettant de résoudre un problème ou d'obtenir un résultat déterminé. L'algorithmique en constitue l'étude : elle précède l'apprentissage de tout langage de programmation, quel qu'il soit. Nous étudierons les notions de variable et d'affectation, la structure conditionnelle, puis la notion de complexité algorithmique et les algorithmes de tri et de recherche classiques.
I. Variables et affectations
- Une variable est un espace mémoire nommé, destiné à contenir une valeur d'un type donné (Entier, Caractère…), susceptible de changer au cours de l'exécution de l'algorithme.
- L'affectation, notée « ← », attribue une valeur à une variable. A ← 5 signifie « la variable A reçoit la valeur 5 ».
- L'ordre d'exécution des instructions est déterminant : chaque affectation utilise la valeur des variables au moment où elle est exécutée, et non leur valeur finale.
Exemple : soit l'algorithme suivant.
| Instructions | Valeurs après exécution |
|---|---|
| Variables A, B en Entier Début A ← 1 B ← A + 3 A ← 3 Fin | A = 3 ; B = 4 (B a été calculé avec l'ancienne valeur de A, soit 1, avant que A ne soit réaffecté à 3) |
- Piège classique : l'échange de deux variables ne peut pas s'écrire simplement « A ← B » puis « B ← A », car la valeur initiale de A est perdue dès la première instruction. Un échange correct nécessite une variable intermédiaire (ex. C ← A, A ← B, B ← C).
- Sur des variables de type Caractère, l'opérateur « + » réalise une concaténation (juxtaposition des chaînes) et non une addition arithmétique : si A ← "423" et B ← "12", alors A + B donne la chaîne "42312".
II. La structure conditionnelle
- La structure Si...Alors...Sinon...FinSi permet d'exécuter un bloc d'instructions différent selon qu'une condition est vraie ou fausse. Elle teste une seule condition à la fois (éventuellement composée de plusieurs critères combinés par des opérateurs logiques ET/OU).
III. Complexité et algorithmes classiques
- L'efficacité d'un algorithme s'évalue selon deux mesures principales : le temps d'exécution (nombre d'opérations effectuées, non le temps réel en microsecondes, qui dépend du matériel) et l'espace mémoire utilisé.
| Algorithme | Complexité (pire cas) | Type |
|---|---|---|
| Recherche linéaire | O(n) | Recherche |
| Recherche dichotomique | O(log n) | Recherche (sur données triées) |
| Tri à bulles / Tri par sélection | O(n²) | Tri |
| Tri par fusion / Tri rapide | O(n log n) | Tri |
- Parmi les algorithmes de tri classiques, le tri fusion (merge sort) présente la complexité la plus faible dans le pire des cas (O(n log n)), contrairement au tri à bulles ou au tri par sélection (O(n²)), moins efficaces sur de grands volumes de données. C O R R É L AT I O N S P R AT I Q U E S
La logique algorithmique de base (variables, conditions) est le socle de compréhension des logiciels métiers utilisés en milieu hospitalier (dossier patient informatisé, systèmes d'aide à la décision). Comprendre la notion de complexité aide à anticiper pourquoi un traitement informatique (ex. recherche dans une base de données de dossiers patients) peut être lent sur un grand volume de données. La rigueur du raisonnement algorithmique (tracer précisément l'état des variables) rejoint la rigueur exigée dans le raisonnement clinique par étapes.
Conclusion
L'algorithmique de base repose sur la manipulation de variables par des instructions d'affectation, exécutées dans un ordre strict, et sur des structures de contrôle comme le test conditionnel Si...Alors...Sinon. L'évaluation d'un algorithme selon sa complexité en temps et en espace permet de comparer différentes solutions à un même problème, comme l'illustrent les algorithmes de tri et de recherche classiques. Ces notions fondamentales, indépendantes de tout langage de programmation particulier, complètent la formation en culture numérique de l'étudiant en médecine, appelé à utiliser des outils informatiques de plus en plus sophistiqués tout au long de sa carrière.
Publié le
