Définition – Algorithme et Problème | Algorithmique Seconde

Introduction

ALGORITHMIQUE & PROGRAMMATION
Notion d'algorithme - Définition

Découvrez les fondements de la pensée algorithmique

Problème
Algorithme
Logique

Définition d'un problème

Qu'est-ce qu'un problème ?

DÉFINITION MATHÉMATIQUE
Définition

En algorithmique, un problème est une situation qui nécessite une solution. Il se caractérise par :

  • Des données d'entrée
  • Des contraintes
  • Un objectif à atteindre

Par exemple : "Trouver le plus grand diviseur commun de deux nombres entiers."

Un problème est bien posé lorsqu'il a une solution unique et qu'elle peut être trouvée.
Données d'entrée
Traitement
Résultat

Exemples de problèmes

Problèmes concrets

EXEMPLES COURANTS
Problème mathématique

Énoncé : Trouver les racines d'une équation du second degré ax² + bx + c = 0

Données : Coefficients a, b, c

Objectif : Trouver les valeurs de x qui vérifient l'équation

Problème informatique

Énoncé : Trier une liste de nombres par ordre croissant

Données : Liste de nombres

Objectif : Renvoyer la liste triée

Problème du quotidien

Énoncé : Calculer le temps de trajet entre deux villes

Données : Distance, vitesse moyenne

Objectif : Calculer le temps de trajet

Définition d'un algorithme

Qu'est-ce qu'un algorithme ?

DÉFINITION OFFICIELLE
Définition formelle

Un algorithme est une suite finie et non ambiguë d'instructions permettant de résoudre un problème.

Il doit respecter les critères suivants :

  • Finitude : Un nombre fini d'étapes
  • Bonne définition : Chaque instruction est claire
  • Entrées : Zéro ou plusieurs données d'entrée
  • Sorties : Une ou plusieurs données de sortie
  • Efficacité : Résout le problème en un temps raisonnable
ANALOGIE PRATIQUE
Analogie de recette de cuisine

Un algorithme est comparable à une recette de cuisine :

  • Ingrédients → Données d'entrée
  • Étapes précises → Instructions de l'algorithme
  • Plat final → Résultat attendu

Chaque étape doit être clairement formulée pour aboutir au résultat escompté.

Un algorithme est un outil de résolution de problèmes !

Caractéristiques d'un algorithme

Propriétés essentielles

CRITÈRES FONDAMENTAUX
Finitude

Un algorithme doit se terminer après un nombre fini d'étapes. Il ne doit pas boucler indéfiniment.

Exemple : L'algorithme de recherche d'un élément dans une liste se termine quand l'élément est trouvé ou quand toute la liste a été parcourue.

Déterminisme

Pour les mêmes données d'entrée, un algorithme doit toujours produire le même résultat.

Chaque instruction est exécutée de manière prévisible et cohérente.

Efficacité

L'algorithme doit résoudre le problème en un temps raisonnable et utiliser des ressources limitées.

On mesure souvent l'efficacité par la complexité algorithmique.

Relation entre problème et algorithme

Le lien fondamental

COMPRÉHENSION DE LA RELATION
Problème vs Algorithme

Un problème est une question ou une tâche à accomplir.

Un algorithme est une méthode systématique pour résoudre ce problème.

Un même problème peut avoir plusieurs algorithmes de résolution.

EXEMPLE ILLUSTRATIF
Différentes approches

Problème : Trier une liste de nombres

Algorithmes possibles :

  • Tri à bulles
  • Tri rapide (QuickSort)
  • Tri fusion
  • Tri par insertion

Chaque algorithme a ses avantages et inconvénients en termes de performance.

Exemple d'algorithme simple

Algorithme du maximum

PROBLÈME
Énoncé

Écrire un algorithme qui trouve le plus grand nombre parmi deux nombres donnés.

Algorithme en pseudo-code
ALGORITHME Maximum
    VARIABLES a, b, max : NOMBRES
DEBUT
    AFFICHER "Entrez le premier nombre"
    LIRE a
    AFFICHER "Entrez le second nombre"
    LIRE b
    
    SI a > b ALORS
        max ← a
    SINON
        max ← b
    FIN SI
    
    AFFICHER "Le maximum est ", max
FIN
                                        
EXPLICATION PAS À PAS
Analyse de l'algorithme
  • Entrées : Deux nombres a et b
  • Processus : Comparaison des deux nombres
  • Sortie : Le plus grand des deux nombres

Cet algorithme respecte toutes les propriétés d'un bon algorithme : finitude, déterminisme, efficacité.

Représentation d'un algorithme

Modes de représentation

DIFFÉRENTES REPRÉSENTATIONS
Pseudo-code

Langage proche de la programmation mais simplifié, indépendant de tout langage spécifique.

Avantages : Lisible, facile à comprendre, proche de la programmation.

Organigramme (diagramme de flux)

Représentation graphique avec des formes géométriques et des flèches.

Symboles courants : ovale (début/fin), rectangle (traitement), losange (condition), parallélogramme (entrée/sortie).

Langage naturel

Description en français des étapes de l'algorithme.

Moins formel mais parfois plus accessible pour les débutants.

Langage naturel
Pseudo-code
Organigramme

Exemple d'organigramme

Algorithme du maximum en organigramme

REPRÉSENTATION GRAPHIQUE
Début
Lire a, b
a > b ?
OUI
NON
max = a
max = b
Afficher max
Fin
INTERPRÉTATION
Lecture de l'organigramme
  • Ovale : Début/Fin de l'algorithme
  • Rectangle : Traitement ou affectation
  • Rhombus : Test conditionnel
  • Flèches : Ordre d'exécution des instructions

L'organigramme permet de visualiser le déroulement logique de l'algorithme.

Types d'algorithmes

Classification

CLASSIFICATION SELON LE TYPE DE PROBLÈME
Algorithmes de tri

Permettent de ranger des éléments dans un ordre particulier (croissant, décroissant).

Exemples : Tri à bulles, tri rapide, tri fusion, tri par insertion.

Algorithmes de recherche

Permettent de trouver un élément dans une structure de données.

Exemples : Recherche linéaire, recherche dichotomique.

Algorithmes numériques

Effectuent des calculs mathématiques complexes.

Exemples : Algorithme d'Euclide, calcul de PGCD, approximation de racines.

Algorithmes de graphes

Utilisés pour traiter des structures en forme de graphes.

Exemples : Algorithme de Dijkstra, parcours en profondeur.

Exercice 1

Problème à résoudre

ÉNONCÉ
Question

Écrire un algorithme qui calcule la somme des n premiers entiers naturels (1 + 2 + 3 + ... + n).

Identifier les éléments suivants :

  • Données d'entrée
  • Données de sortie
  • Opérations à effectuer

Solution exercice 1

Correction détaillée

ANALYSE DU PROBLÈME
Identification des éléments
  • Donnée d'entrée : Un entier n positif
  • Donnée de sortie : La somme S = 1 + 2 + ... + n
  • Opération : Addition successive des entiers de 1 à n
ALGORITHME EN PSEUDO-CODE
Version itérative
ALGORITHME SommeEntiers
    VARIABLES n, i, somme : ENTIER
DEBUT
    AFFICHER "Entrez un entier positif n"
    LIRE n
    somme ← 0
    
    POUR i ALLANT DE 1 À n FAIRE
        somme ← somme + i
    FIN POUR
    
    AFFICHER "La somme des ", n, " premiers entiers est ", somme
FIN
                                        
VERSION OPTIMISÉE
Formule mathématique

On sait que la somme des n premiers entiers est égale à n(n+1)/2

ALGORITHME SommeEntiersOptimise
    VARIABLES n, somme : ENTIER
DEBUT
    AFFICHER "Entrez un entier positif n"
    LIRE n
    
    somme ← n * (n + 1) / 2
    
    AFFICHER "La somme des ", n, " premiers entiers est ", somme
FIN
                                        

Exercice 2

Problème de recherche

ÉNONCÉ
Question

Écrire un algorithme qui recherche un élément dans une liste de nombres.

Si l'élément est trouvé, afficher sa position. Sinon, indiquer qu'il n'est pas présent.

Utiliser une recherche linéaire (tester chaque élément un par un).

Solution exercice 2

Correction détaillée

ANALYSE DU PROBLÈME
Identification des éléments
  • Données d'entrée : Une liste de nombres et un élément à rechercher
  • Donnée de sortie : Position de l'élément ou message d'absence
  • Opération : Comparaison successive avec chaque élément de la liste
ALGORITHME EN PSEUDO-CODE
Recherche linéaire
ALGORITHME RechercheLineaire
    VARIABLES liste[1..n], element, i, position : ENTIER
    TROUVE : BOOLEEN
DEBUT
    AFFICHER "Entrez la taille de la liste"
    LIRE n
    
    AFFICHER "Entrez les éléments de la liste"
    POUR i ALLANT DE 1 À n FAIRE
        LIRE liste[i]
    FIN POUR
    
    AFFICHER "Entrez l'élément à rechercher"
    LIRE element
    
    TROUVE ← FAUX
    i ← 1
    
    TANT QUE i ≤ n ET NON TROUVE FAIRE
        SI liste[i] = element ALORS
            TROUVE ← VRAI
            position ← i
        SINON
            i ← i + 1
        FIN SI
    FIN TANT QUE
    
    SI TROUVE ALORS
        AFFICHER "L'élément est trouvé à la position ", position
    SINON
        AFFICHER "L'élément n'est pas dans la liste"
    FIN SI
FIN
                                        

Complexité algorithmique

Performance des algorithmes

NOTION DE COMPLEXITÉ
Définition

La complexité algorithmique mesure l'efficacité d'un algorithme en fonction de la taille des données d'entrée.

Elle s'exprime généralement en notation "grand O" (O(n), O(n²), O(log n), etc.).

TYPES DE COMPLEXITÉ
Classification
  • O(1) : Temps constant - Indépendant de la taille des données
  • O(log n) : Logarithmique - Très efficace
  • O(n) : Linéaire - Proportionnel à la taille des données
  • O(n log n) : Efficace pour les grands ensembles
  • O(n²) : Quadratique - Moins efficace pour les grandes tailles

Résumé

Points clés

DÉFINITIONS ESSENTIELLES
Problème
  • Situation qui nécessite une solution
  • Caractérisé par des données d'entrée et un objectif
  • Doit être bien posé pour avoir une solution
Algorithme
  • Suite finie et non ambiguë d'instructions
  • Respecte les propriétés de finitude, déterminisme, efficacité
  • Méthode systématique pour résoudre un problème
Représentation
  • Pseudo-code : Langage proche de la programmation
  • Organigramme : Représentation graphique
  • Langage naturel : Description en français
Maîtrisez ces concepts pour réussir en algorithmique !

Conclusion

Félicitations !

FÉLICITATIONS !
MAÎTRISE DE L'ALGORITHMIQUE
Vous comprenez maintenant la définition des algorithmes et des problèmes !

Continuez à pratiquer pour renforcer vos compétences

Compris
Retenu
Appliqué